DINGO-O UNIVPM
This post is a quick and compact guide for working with the DINGO-O.
The DINGO-O (omnidirectional robot) is an indoor compact development platform of the Canadian manufacturer Clearpath Robotics. ROS Noetic is pre-installed, so after receiving the robot the user can start developing algorithms right away.
Informative Links
-
DINGO-O ROS Cheat Sheet (Applicable to Noetic)
Quick Start
The robot is turned on via the power button, and the start-up of the DINGO-O may take up to a minute to fully start.
Depending on the configuration of the Dingo, auxiliary sensors software drivers such as Lidar may start with the robot but often does not start as disconnection or damage to the wire of the sensor can cause the robot to startup incorrectly (In this case it is powered on startup).
When powered on, the onboard NVIDIA Jetson Nano is started as well which has a ZED2 camera connected to it.
When the Dingo-O displays white lights in the front and red lights in the back, it means that it has started up successfully. The controller can now be used for movement. For software remote connection, the robot has to be accessed once to configure the WiFi network to enable remote access.
Network configuration can take place in one of two methods, the first being via the static network connection and the second being through the screen, where the screen method is much quicker and easier for clients to set up.
Static Network Connection
For the first time, one needs to connect through a LAN cable to configure the robot’s WLAN network.
To create a static connection in your own PC (not the DINGO-O), in Ubuntu goto Settings → Network then click on + and create a new connection.
-
The first task is to go to IPv4 and change the connection to manual.
-
The second task is to put the Address IP as 192.168.131.1 (may differ from robot to robot) and the Netmask as 24.
Click save and restart your network. Next is to open up the dingo as shown, and connect the LAN cable to the robot. After a successful connection let’s check the host’s local IP by typing in the Host PC’s terminal.
ifconfig
This should show the host IP which was assigned in the above step. Now its time to check if we can ping the robot or not, to do so type in your host pc
ping 192.168.131.1
After a successful ping, it’s time to access the robot. To access the robot you can type the following command:
ssh -X administrator@192.168.131.1
The password is
clearpath
Screen Connection
An alternative for connecting to the dingo is by plugging in an HDMI cable as well as a mouse and keyboard. This will allow you to connect the dingo to your own local WiFi network and then you can connect later over the WiFi.
DINGO-O PC
The procedure is simply to go to your networks and add your WiFi. Then in the terminal type:
ifconfig
The IP that comes with the initial characters of wl is your WiFi’s IP. e.g. wlps0. With this IP you can SSH to your robot.
ssh -X administrator@192.168.0.228
192.168.0.228 is just an example of this. IP is taken from the ifconfig.
clearpath
Quick Control
Some quick useful commands in case there is an issue with the joystick is to ssh into the robot and teleoperated it via:
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
Visualization
The robot can be visualized using rviz by running the following command
roslaunch mbs_viz view_robot.launch
Network
This robot has an industrial-grade computer on board with the MCU port being on 192.168.131.1, the Hokuyo Lidar port being on 192.168.131.20 and Nvidia port being on 192.168.131.50.
Device | Network | Password |
---|---|---|
Dingo | 192.168.131.1 | clearpath |
Dingo-MCU | 192.168.131.2 | |
Hokuyo Lidar | 192.168.131.20 | |
Nvidia Jetson | 192.168.131.50 | clearpath |
Robot Software
The DINGO-O drivers configured by MYBOTSHOP are located in the ros_ws. In the src folder, the third_party contains the drivers for the DINGO-O and its Puma motors as well as any auxiliary sensors such as the ZED2 depth camera.
Robot Startup
The DINGO-O ordinarily utilizes Clearpath startup job unless otherwise specified. In this robot, we have our own upstart job which has ros multi-machine setup on the ip 192.168.131.1
. In case there is an issue with the robot not starting up. One can ssh into the Dingo and verify if the startup job is working correctly.
sudo service dingo status
The red marker in the service indicates that the startup job has failed. Green indicates everything is working correctly. Grey indicates that the service has not started yet. In case of red or grey marker, you may restart the service via:
sudo service dingo restart
If you want to modify the upstart job or add other ROS launch files to it then it is recommended to add your changes to the main upstart file i.e. startup.lunch located in the mbs_startup package. Once done, save the file and run the following command to update startup job.
rosrun mbs_startup startup_installer.py
Additionally, the setup.bash
in mbs_startup/config file consists of enviroment variable of the robot and sensors that can be used to enable and disable certain features. For example, the MBS_LIDARS when given a value of 0 will diable it when the launch file is executed, similarly, for the depth camera, the variable MBS_DEPTH_CAMERA is used.
Robot Description
We have added two new components, one is the aluminium frame which is attached with the dingo on the front end and has the ZED2 camera on the top end.
These components can be further investigated in the file named accessories.urdf.xacro which is located in the directory dingo-o-univpm/dingo-o_ws/mbs/mbs_description/xacro/
Note: The URDF for ZED2 does not come from the Nvidia but from the dingo-o.