Video tutorials covering each chapter of <ROS Robot Programming> Handbook

Hi RobotSource members,

I am pleased to announce a new ROS Online Course, this course is a ROS robot programming guide based on the experiences we had accumulated from ROS projects like TurtleBot3, OpenCR and OpenManipulator. We tried to make this a comprehensive guide that covers all aspects necessary for a beginner in ROS. Topics such as embedded system, mobile robots, and robot arms programmed with ROS are included. For those who are new to ROS, there are footnotes throughout the “ROS Robot Programming” Handbook providing more information on the web. Through this course and book, we hope that more people will be aware of and participate in bringing forward the ever-accelerating collective knowledge of Robotics Engineering. Enjoy this summer studying ROS! :smile:

:heavy_check_mark: Free Online Course!
:heavy_check_mark: Basic ROS learning from basics, simulators, applied to real robots!
:heavy_check_mark: We share a 500-page book for free!
:heavy_check_mark: All lecture materials and source code are opened!

:black_small_square: What you will learn from this course

  • From the basic concept to practical robot application programming!
  • ROS Basic concept, instructions and tools
  • How to use sensor and actuator packages on ROS
  • Embedded board for ROS : OpenCR1.0
  • SLAM & Navigation with TurtleBot3
  • How to program a delivery robot using ROS Java
  • OpenManipulator simulation using MoveIt! and Gazebo

:black_small_square: Youtube Playlist

:black_small_square: Lecture Materials

:black_small_square: Download the ‘ROS Robot Programming’ Book for Free!

  • Check out RobotSource for Download
  • This Handbook is written for college students and graduate students who want to learn robot programming based on ROS (Robot Operating system) and also for professional researchers and engineers who work on robot development or software programming.
    We have tried to offer detailed information we learned while working on TurtleBot3 and OpenManipulator. We hope this book will be the complete handbook for beginners in ROS and more people will contribute to the ever-growing community of open robotics.
  • Chapter 01 Robot Software Platform
  • Chapter 02 Robot Operating System
  • Chapter 03 Configuring the ROS Development Environment
  • Chapter 04 Important Concepts of ROS
  • Chapter 05 ROS Commands
  • Chapter 06 ROS Tools
  • Chapter 07 Basic ROS Programming
  • Chapter 08 Robot Sensor Motor
  • Chapter 09 Embedded System
  • Chapter 10 Mobile Robots
  • Chapter 11 SLAM and Navigation
  • Chapter 12 Service Robot
  • Chapter 13 Manipulator

:black_small_square: Manuals for TurtleBot3, OpenCR, OpenManipulator

:black_small_square: Open Source: Tutorials, TurtleBot3, OpenCR, OpenManipulator

1 Like

You are amazing!
Huge work and for free!
Thank you very much!

1 Like

I’m having a problem running this command from the tutorial:

roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch

It crashes.I am running on a VMWare virtual machine that so far has operated perfectly. Can you tell what is going on? Here’s the output I get

.. logging to /home/pitosalas/.ros/log/b19a483e-8e8c-11e8-8d5b-000c294e64db/roslaunch-ubuntu-2147.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://localhost:38743/


 * /robot_description: <?xml version="1....
 * /rosdistro: kinetic
 * /rosversion: 1.12.13
 * /use_sim_time: True

    gazebo (gazebo_ros/gzserver)
    gazebo_gui (gazebo_ros/gzclient)
    spawn_urdf (gazebo_ros/spawn_model)

auto-starting new master
process[master]: started with pid [2161]

setting /run_id to b19a483e-8e8c-11e8-8d5b-000c294e64db
process[rosout-1]: started with pid [2176]
started core service [/rosout]
process[gazebo-2]: started with pid [2179]
process[gazebo_gui-3]: started with pid [2203]
process[spawn_urdf-4]: started with pid [2210]
[ INFO] [1532359559.024952460]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1532359559.036003877]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1532359559.146464699]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1532359559.153471537]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
Warning [] XML Element[scene], child of element[sdf] not defined in SDF. Ignoring[scene]. You may have an incorrect SDF file, or an sdformat version that doesn't support this element.
[ INFO] [1532359560.766144901, 0.021000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1532359562.952997443, 0.118000000]: Physics dynamic reconfigure ready.
[ INFO] [1532359562.975617024, 0.118000000]: Laser Plugin: Using the 'robotNamespace' param: '/'
[ INFO] [1532359562.977520632, 0.118000000]: Starting Laser Plugin (ns = /)
[ INFO] [1532359562.988809846, 0.118000000]: Laser Plugin (ns = /)  <tf_prefix_>, set to ""
[ INFO] [1532359563.056013764, 0.118000000]: Starting plugin DiffDrive(ns = //)
[ INFO] [1532359563.065542494, 0.118000000]: DiffDrive(ns = //): <rosDebugLevel> = na
[ INFO] [1532359563.068763998, 0.118000000]: DiffDrive(ns = //): <tf_prefix> = 
[ WARN] [1532359563.070802609, 0.118000000]: DiffDrive(ns = //): missing <publishOdomTF> default is ture
[ WARN] [1532359563.071377870, 0.118000000]: DiffDrive(ns = //): missing <odometrySource> default is 1
[ INFO] [1532359563.073687296, 0.118000000]: DiffDrive(ns = //): Advertise joint_states
[ INFO] [1532359563.076432379, 0.118000000]: DiffDrive(ns = //): Try to subscribe to cmd_vel
[ INFO] [1532359563.088830172, 0.118000000]: DiffDrive(ns = //): Subscribe to cmd_vel
[ INFO] [1532359563.093699358, 0.118000000]: DiffDrive(ns = //): Advertise odom on odom 
[ INFO] [1532359563.173780309, 0.141000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[spawn_urdf-4] process has finished cleanly
log file: /home/pitosalas/.ros/log/b19a483e-8e8c-11e8-8d5b-000c294e64db/spawn_urdf-4*.log
[ INFO] [1532359563.282893935, 0.180000000]: Physics dynamic reconfigure ready.
VMware: vmw_ioctl_command error Invalid argument.
Aborted (core dumped)
[gazebo_gui-3] process has died [pid 2203, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/pitosalas/.ros/log/b19a483e-8e8c-11e8-8d5b-000c294e64db/gazebo_gui-3.log].
log file: /home/pitosalas/.ros/log/b19a483e-8e8c-11e8-8d5b-000c294e64db/gazebo_gui-3*.log

Then I clicked control-c and got this:

[gazebo_gui-3] process has died [pid 2203, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/pitosalas/.ros/log/b19a483e-8e8c-11e8-8d5b-000c294e64db/gazebo_gui-3.log].
log file: /home/pitosalas/.ros/log/b19a483e-8e8c-11e8-8d5b-000c294e64db/gazebo_gui-3*.log

^C[gazebo-2] killing on exit
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
  what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument
[gazebo-2] escalating to SIGTERM
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete

Hi @pitosalas

I don’t recommend running Gazebo in VMware or VBox. The Gazebo requires high graphics specifications and a lot of computing resources.

And if you have any questions or issues, I recommend you use the Github issue below.

1 Like