Skip to main content

Featured Post

Product Design of a 4 wheel differential drive robot

ROS simulating a 3 axis robot in Rviz

In this tutorial, we will create an urdf model of a 3 axis robot and simulate it in Rviz.

Create a package inside your workspace (create it if u haven't any).

Create a folder named urdf to store urdf models.

Now create a new file called my_robot.urdf with these data.

This link will give you a list of all possible tag tags and informations. (Read this before going further. link) There are 4 links and three joints in this robot. Each joint has one parent and one child.
There are different types of joints. Here we used continuous and fixed type. Joint 0 is fixed and the rest of them are continuous. The origin tag inside the <joint> <origin rpy="0 0 0" xyz="0 0 3"/> represents the amount of offset required from the parent link. This can be clearly understood from the following figure.
There is also an another origin tag inside link tag. This represent the base frame of the link itself. We need to shift it by 1.5 (half of the link length), other wise rotation will be around the middle part of each link rather than at the joint (This will make sure both the base frame; child and parent coincides).
 


Now create a file called my_robot.launch under launch folder. This will launch joint_state_publisher and robot_state_publisher node. joint_state_publisher node will publish all the joint states. This also has one gui where you can change each joint angles. robot_state_publisher node will take the joint angles of the robot as input and publishes the 3D poses of each links. 
Now create another file called rviz.rviz. (This is not actually needed. This is just a configuration file for Rviz saying that these panels should be there. You can open rviz and add the RobotModel and save the configuration by yourself.)
Now launch the launch file.
If you are planning to create a hardware and want to simulate the same, you can create a separate node that will publish joint states instead of using joint_state_publisher node.

Here instead of actual hardware ESP8266 is communicating with ROS and sending joint angles of a 5 axis robot.

You can refer these tutorials to get more in depth knowledge.
http://wiki.ros.org/urdf/Tutorials
https://www.youtube.com/watch?v=g9WHxOpAUns

Comments

Popular posts from this blog

Plymouth theme for Ubuntu

Bored of having the same boot animation screen again and again? There are plenty of Plymouth themes available out there. This is a theme I created by slicing some cool gif files I found online. You can download the theme and find the installation steps on my github account. ( https://github.com/krishnan793/PlymouthTheme-Cat )  The theme is created for Ubuntu 16.04. But this can be installed on previous versions with slight modification. If you have a slow computer then you can watch the whole animation loops. (The VM I used to record the screen was fast though. :))

Getting started with GPIO (Testing GPIO with a multimeter)

There are 65 possible GPIO pins that you can control. Some of the GPIO pins are normally configured to different functions. Let's play with one of them. Go to the beaglebone website and figure out the header pin corresponding to gpio23. The gpio23 is mapped to the 13th header pin. In this tutorial we are testing the gpio23 output using a multimeter (Do not connect an LED directly to BBB IO pin). First go to following directory cd /sys/class/gpio / Then make gpio23 available echo 23 > export A new directory will be created. Open gpio directory. cd gpio23 The direction of IO will be normally set as in (input).  To make it as output, echo out > direction Then set the pin to high using echo 1 > value Measure the voltage at pin 13 of P8 header. If its 3.3 V then you are on the right track. Pin 1 and 2 will be ground. You can connect the negative terminal of multimeter to pin 1 or 2. To set output as zero, echo 0 > value After finished wit...

Serial Port Communication in Linux using Minicom

First of all install minicom using apt-get install minicom or directly download the .deb package from  https://packages.debian.org/sid/minicom  and install it using dpkg -i <package name> After install type minicom -s to setup the minicom for using your serial port. Select Serial Port Setup and type A to select serial device. It will be shown as /dev/modem replace modem with  your serial device. Press Enter twice to save. You can also setup boadrate and all those stuff in the Serial Port Setup. After that you can save your configurations. Select Save Setup as. Then type a name and press enter to save it. If you wan't to open your configuration later, type minicom <configuration name>