Close

Subsystem - Mobile base

A project log for [2021] Aina - Humanoid plataform ROS robot

Aina is an open-source social robot that's able to speak and move with nearly no human intervention based in ROS that has AI inbuilt.

maximiliano-rojasMaximiliano Rojas 09/27/2021 at 09:450 Comments

 Hi guys, in this log I intend to explain a little bit how the mobile platform works, so as usual this subsystem will be divided into two main topics: hardware and software, but before that lets see a video!


Software

One of the main concepts in the whole process of this robot design is modularity, for this reason, I think ROS is a good choice, with this meta operative system you can easily create programs and interconnect them, basically, it establishes a solid way to create complex robotic systems with not only a high degree of personalization but also its wiki provides a large amount of documentation and ready-to-go packages of programs, a good characteristic to fastenest the prototype development process, of course, ROS by itself can be very confusing and tangled when the projects become big enough and that's why I decided to use docker with it, containers allow me to separate the software in different groups that can communicate between them (a nice trick is to configure them to connect to the host network so no multimachine ROS parameters assignment are necessary), in the light orange square of the Figure 1 you can see the general and simplified structure of the docker-ROS:

                                                                                                Figure 1 - General software configuration.

Let's briefly summarise what all the navigation nodes do and how they work together:

In the Figure 2 you can see how all of these packages send information to others in a more ROS-like way.


                                                                                 Figure 2 - How Packages works together.


All the implemented nodes in the Navigation Sack are in the mov_base package, but to make it work properly is necessary to configure some parameters, there is a bast list of them so in order to understand its role in the system you must know that to navigate the robot create three maps:

There are configurations that affect both maps, and those are:

The parameters that affect the global cost map are:

The parameters that affect the local cost map are:

In Figure 3 you can appreciate the global cost map in light blue, the local cost map in the purple area, and the occupancy map as all the ground in grey, and all the objects in black.

                                                                                          Figure 3 - Maps of the navigation system.


The values that I used are:

                                                                                                Table 1 - Common parameters.
                                                                                                 Table 2 - Local cost map parameters.
                                                                                                Table 3 - Global cost map parameters.


Hardware

Here three topics are presented, the CAD model, the 3D print parts, and the electronics, for the first one I must say that all the modeling was made with Fusion360 (student license, although there is a free license with like one year of use).

I want it to be easy to modify for others, that's why I designed the base with various interchangeable parts, so if you want to add some feature that needs to put something in the case, the process shouldn't be a headache, similarly, all the electronics are attached in platform with a pattern of holes for the same reasons, in the Figures 4, 5, 6 and 7 you can see the 3D model representing all of this.

                                                                                                 Figure 4 - Parts of the mobile base.
                                                                                 Figure 5 - Perspective of the inner parts of the mobile base.
                                                                                 Figure 6 - Electronics attached to the platform with holes.
                                                                                               Figure 7 - Electronics parts of the mobile base.

In Figure 8 you can see how it looks in real life.

                                                                                                    Figure 8 - The result of the mobile base.


As regards electronics there are several considerations to take, in the mobile base are all the main components for energy regulation and distribution to all the components in the rest of the robot, to accomplish this task a battery bank with 16.4V @17000 mAh is made from 20 NCR18650 wichs allows approximately one and a half-hour of autonomy, these batteries has a recharge cycle and the manufacturer [8]  recommends a current of the 0.5 times the capacity of the battery, if you observed the Figure 6 there are two components to accomplish that, the BMS regulate the charge of a set of 4 NCR18650 per stage by voltage levels and the step-down based in the XL4016 [9] limits the current along the way with the voltage to the maximum allowed for the BMS, which is 16.8V [10].

A lot of elements need different levels of voltage to work, for example, one sensor works with 3V3 meanwhile the other needs 5V, one type of regulation that can be useful can be based on the LM78XX series [11] because it can have an output between 5V to 24V (depends on the model), and although they can keep a 4% of output tolerance and has overcharge protection they use is very limited to the 1A of supported current to the load, another good option can use Buck's modules based on the LM2596S [12] which is synchronous converter at 400 kHz with an output range of 1.2V to 34V (4% tolerance as well) with constant 3A, the power dissipation is internally regulated and generally is very efficient (even with the generated heat).


References

[1] http://wiki.ros.org/rosserial

[2] http://wiki.ros.org/freenect_launch

[3] http://wiki.ros.org/depthimage_to_laserscan

[4] http://wiki.ros.org/tf

[5] http://wiki.ros.org/move_base
[6] http://wiki.ros.org/rtabmap_ros

[7] https://github.com/ros-visualization/rviz
[8] https://www.batteryspace.com/prod-specs/NCR18650B.pdf

[9] http://www.xlsemi.com/datasheet/XL4016%20datasheet.pdf

[10] https://www.mantech.co.za/datasheets/products/BMS-40A-4S_SGT.pdf

[11] https://www.mouser.com/datasheet/2/149/LM7812-461970.pdf

[12] https://www.ti.com/lit/ds/symlink/lm2596.pdf?ts=1622035423767&ref_url=https%253A%252F%252Fwww.google.it%252F

Discussions