Ad code

Basic Mobile Robot w/ ROS

We will discuss a simple mobile robot that can be integrated to Robotic Operating System.
As we all knew ROS currently is the most available programs and libraries that we can used to build 
a good robot. ROS support robotics from hobby to industrial grade application of robotics.ROS is intended to be run on computer hardware, like the notebook you indicated. rosserial is intended to allow you to bridge physical hardware and sensors to the ROS computation graph using a micro controller (at this time, the Arduino has client libraries developed). rosserial should be used when the hardware doesn't already have a ready-made interface and driver (for example, you shouldn't use a GPS receiver with rosserial).

Motor with encoder
Odroid C1+
Laser range finder.

To build a simple robot that can use a ROS.


A motor controller implemented on an Arduino will want to create a ROS Subscriber that will listen to a Twist Message on a given topic. Many people use /cmd_vel as the topic for this purpose.

Now, with a ROS core running, and the rosserial_python node running, you should see a /cmd_vel appear in a rostopic list command. You can use another node on your system to publish messages to /cmd_vel, that the Arduino will interpret into motor commands. The Arduino firmware should be able to turn a Twist message (linear and angular velocities) into appropriate motor commands for your platform.

Another application may be reading an ultrasonic rangefinder to l physically interface the line sensor to  the Arduino, and then create a ROS Publisher. It could then make this message type a Float32 if you wanted to represent a floating point distance or perhaps an Int32, if you wanted to get the raw ADC values. These would then be published into the computation graph on the topic of your choice (say /rangefinder). You could then see these values by doing rostopic echo /rangefinder on the command line.

Integrating  Subscriber and Publisher
If the  robot can receive movement commands from ROS via /cmd_vel and can broadcast readings of the physical world, then you can start creating (or using) other ROS nodes to process this data and make decisions.

If the  robot can accept command velocities, can publish range scans, and can publish odometry information, you can start to use higher-level nodes for navigation, localization, and path planning.



Path Planning



Post a Comment