Working with 3D Robot Modeling in ROS
The first phase of robot manufacturing is design and modeling. We can design and model a robot using CAD tools such as AutoCAD, SOLIDWORKS, and Blender. One of the main purposes of robot modeling is simulation.
The robotic simulation tool can check for critical flaws in the robot's design and can confirm that the robot will work before it goes to the manufacturing phase.
The virtual robot model must have all the characteristics of the real hardware. The shape of a robot may or may not look like the actual robot, but it must be abstract, which has all the physical characteristics of the actual robot.
In this chapter, we are going to discuss the designing of two robots. One is a seven Degrees of Freedom (DOF) manipulator, and the other is a differential drive robot. In the upcoming chapters, we will look at simulation, how to build the real hardware, and interfacing with ROS.
If we are planning to create the 3D model of the robot and simulate it using ROS, you need to learn about some ROS packages that help in robot designing. Creating a model for our robot in ROS is important for different reasons. For example, we can use this model to simulate and control the robot, visualize it, or use ROS tools to get information on the robotic structure and its kinematics.
ROS has a standard meta package for designing and creating robot models called robot_model, which consists of a set of packages, some of which are called urdf, kdl_parser, robot_state_publisher, and collada_urdf. These packages help us create the 3D robot model description with the exact characteristics of the real hardware.
In this chapter, we will cover the following topics:
- ROS packages for robot modeling
- Creating the ROS package for the robot description
- Understanding robot modeling using URDF
- Understanding robot modeling using xacro
- Converting xacro to URDF
- Creating a robot description for a seven DOF robot manipulator
- Working with the joint state publisher and robot state publisher
- Creating robot description for a differential wheeled robot