Giter VIP home page Giter VIP logo

gcamp_ros2_basic's Introduction

GCamp ROS 2 Basic

ROS 2 Basics with Gazebo Simulations

Feel Free to use this repo as an template code ๐Ÿ˜€

News

There's Youtube Lecture note for all codes, all packages (Written in Korean)

There's Lecture note for all codes, all packages (Written in Korean)

Comming Soon... All process with Windows OS

Repo Structure

โ”œโ”€โ”€ cpp_first_pkg
โ”œโ”€โ”€ cpp_topic_pkg
โ”œโ”€โ”€ cpp_service_pkg
โ”œโ”€โ”€ cpp_action_pkg
โ”œโ”€โ”€ py_first_pkg
โ”œโ”€โ”€ py_topic_pkg
โ”œโ”€โ”€ py_service_pkg
โ”œโ”€โ”€ py_action_pkg
โ”œโ”€โ”€ custom_interfaces
โ”œโ”€โ”€ gcamp_gazebo
โ””โ”€โ”€ image
  • gcamp_gazebo : Gazeobo Package with Worlds and Robot.
  • cpp_<sth>_pkg : C++ ROS 2 packages for each ROS Communication Mechanisms
  • py_<sth>_pkg : Python ROS 2 packages for each ROS Communication Mechanisms
  • custom_interfaces : Package for custom ROS 2 communication interfaces

Examples - rclpy

Topic Examples

  • Available nodes and Execution commands
ros2 run py_topic_pkg cmd_vel_pub_node 
ros2 run py_topic_pkg laser_raw_node 
ros2 run py_topic_pkg laser_sub_node
ros2 run py_topic_pkg parking_node

Project - Parking

Use ROS 2 topic to park the robot correctly in the simulation.

  • LaserScan data Subscribe
  • Twist publish

Service Examples

  • Available nodes and Execution commands
ros2 run py_service_pkg gazebo_model_spawner
ros2 run py_service_pkg robot_turning_server
ros2 service call /turn_robot custom_interfaces/srv/TurningControl "{time_duration: 5, angular_vel_z: 1.0, linear_vel_x: 0.5}"
ros2 service call /delete_entity gazebo_msgs/srv/DeleteEntity "{name: 'skidbot'}"
ros2 run py_service_pkg robot_turning_client

Project - Spawn Cloned Robot

Use ROS 2 service to bring a robot into the simulation.

  • ROS Gazebo Service
  • Service Client
  • URDF

Action Examples

  • Available nodes and Execution commands
ros2 run py_action_pkg fibonacci_action_server 
ros2 run py_action_pkg fibonacci_action_client 
ros2 run py_action_pkg fibonacci_action_server_cancel 
ros2 run py_action_pkg fibonacci_action_client_cancel

ros2 action send_goal fibonacci custom_interfaces/action/Fibonacci "{order: 5}"
ros2 action send_goal --feedback fibonacci custom_interfaces/action/Fibonacci "{order: 5}"

ros2 run image_view image_view --ros-args --remap /image:=/diffbot/camera_sensor/image_raw
ros2 run py_action_pkg img_subscriber_node 
ros2 run py_action_pkg odom_sub_node 
ros2 run py_action_pkg robot_controller
ros2 run py_action_pkg maze_action_server
ros2 run py_action_pkg maze_action_client
ros2 action send_goal --feedback maze_action custom_interfaces/action/Maze "{turning_sequence: [2,1,0,1,2]}"

Project - Maze Escape

Use ROS 2 action to get the robot out of the maze.

  • Action Client & Server
  • ROS 2 odometry
  • OpenCV

Theory - Robot Dynamics

  • Make skid_drive robot and differential_drive robot with URDF, and make them moving in Gazebo Environment.
  • Check difference btw them

Update & TODO

  • Tutorial for Windows Users

Contributor

gcamp_ros2_basic's People

Contributors

kimsooyoung avatar

Stargazers

Dean avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.