How do mobile Robots move? (Fri Sep 20, lecture 7) previous next
Wheels, legs and other ways for robots to move around 3D space

How do Robots move around?
  • Big idea: There are a variety of ways in which robots can move around
  • Underlying technologies:
    • Motors and Actuators
    • Different kinds of wheels
    • Treads
    • Steering
    • Legs
  • Learning goal, students will:
    • Know the various kinds of wheels, treads, legs etc used in propulsion
    • Know the various kinds of steering that are found in robots
    • Interdependence of steering configuration and locomotion
    • Understand terrain issues when selecting configuration
    • Be able to program a robot to drive in different patterns
    • Understand how sensing and steering work together to control mobilbity

Homework due for today

Legend: : Participation (pass/fail) | : PDF | : Team | : Attachment

  1. Read and Code Read Chapters 8 PLEASE remember to refer to these (8: Teleop-bot in parallel and use the code I provided! Please respond to the following warmup questions:
    1. What features are added to produce from the previous version, why would that be useful and what line in the program contains the key change?
    2. This will take a little research: on page 114 you see rospy.Subscriber('keys', String, keys_cb, twist_pub). What does each parameter do?
    3. On page 124 you see ./ _linear_scale:=0.5 _angular_scale:=1.0 _linear_accel:=1.0 _angular_accel:=1.0. What does the := notation mean or do?
    4. Please write one or two things that are still confusing to you; if it’s all clear, then please write one or two major takeaways. Deliverable: Your responses to the above questions, in brief, in a pdf with your name and homework number at the top. Deliverable: Respond to the questions, and submit in a pdf
  2. Roomba Roamer: Implement part 1 of ROS Roomba Deliverable: See the homework specification for your deliverables.


  • Labs are going well. You can come to either one.
  • Update to project inspirations: Final Project Proposals
  • Homework due times are going to 5pm
  • Search feature on this web web site
  • Passwords on computers, robots, etc in lab are all the same
  • Lab today will have a re-run of “how to run my ROS program on the actual robot”

Steering Wheeled vehicles

Our goal
  • Focusing for now on autonomous, ground based mobile robots. But principles apply
  • Software needs to be able to command the robot
  • Consider micro and macro
    • Steer from Waltham to Boston
    • Steer from Shapiro to Usdan
    • Stay in a lane
    • Drive in a straight road
    • Turn a corner
    • Make a 90 degree turn
    • Simply drive in a straight line
Discussion: Lets take each of these in turn.
  • At the micro level:
    • Move at x Meters/second
    • Turn at 10 degrees/second
Discussion: Lets take each of these in turn.
Steering for wheeled vehicles
  • Degrees of freedom
    • Train?
    • Baseball?
    • Drone?
    • Car?
    • Tank?
  • Holonomic vs. Non-
    • Holonomic means able to move in all possible dimensions
    • Non-holonomic means that it cannot do this
Mobile Robots
  • Motors drive Wheels
    • Differential Drive
    • Tri-cycle vehicle
    • Ackermann Steering
    • Articulated Vehicle
    • There are more
  • “Differential drive”
    • Steering is achieved by driving wheels at different speeds
    • Geometry calculations to determine what delta rpm leads to what kind of turn
    • Usually three wheels, two with motors, one “caster”
  • Tri-cycle steering
    • Two fixed Wheels
    • A third wheel with a steerable mount
  • Ackerman Steering
    • Where the steering is achieved by actual rotation of the wheel mount
    • Note subtle difference from parallel steering
  • Articulated Vehicle
    • Where the vehicle itself has a pivot point
  • Notice that to steer the vehicle an algorithm needs to convert the desired rotation to proportional wheel spinning (we won’t get into the geometry calculations.)


  • Software and hardware architecture
  • cmd_vel: needs to convert from high level units to motor commands
  • odom: needs to convert from sensors (motor decoder and others) into coordinates
  • Big deal is being aware of known errors from the manufacturer
  • We wont go into the detailed geometry and math but it is very well studied and undertood
  • Our motors are Robotis Dynamixel. These seem super common.
  • Dynamixel Spec Sheet
Other scenarios
  • Tracked vehicles (tanks)
  • Water surface vehicles
  • Under water vehicles
  • Aerial vehicles


  • Indoor vs. outdoor
    • Traction and slippage
    • Weather effects - wet, dry, light, dark
  • Inclines and declines
    • Needs more force
    • Also affects levelness
    • Direction that cameras and sensors are pointed


  • The role of sensors in controlling motion
  • Self-sensors (like odometry)
  • External sensors (like LIDAR)
  • Our Robotis TB3 Burger uses HLS-LFCD2
  • Review of dead reconning
  • Review of “real robots don’t drive straight”
Work in groups
  • How would you get your robot to drive in a perfect 1 meter square?

Next Class