The highest cost-performance mobile robotic platform for individual developers.



  • 1. Introduction
    myAGV is the first mobile robot of Elephant Robotics. It uses the competition-level Mecanum wheels and a full wrap design with a metal frame. There are two built-in slam algorithms to meet the learning of mapping and navigation directions. It provides multiple interfaces and can be equipped with different robotic arms to become a compound robot to achieve more applications.
    alt text
    1.1 Mecanum Wheel:
    The installation of the Mecanum wheel enables myAGV to perform the all-direction moving, which can save a lot of unnecessary paths when moving towards the destination and move more flexibly for a massive range of motion.
    1.2 Detachable
    The fully wrapped design with a metal frame makes the myAGV more compact and tough. The built-in Raspberry Pi 4B and split structure make the robot can be disassembled independently, and users can design and create a DIY robot.

    2. Functions
    2.1 Mapping
    SLAM mapping is required in the use of myAGV because the core of the mobile robot to achieve autonomous walking is to achieve autonomous positioning and navigation. In independent positioning and navigation technology, problems such as positioning, mapping, and path planning will be involved. The quality of the map construction will directly affect the walking path of myAGV. If myAGV wants to reach a specific destination, it must draw a map like humans. The process of describing the environment and understanding the environment relies on the map. The two mapping algorithms used by the myAGV are introduced below.alt text
    2.1.1 Gmapping algorithm
    Gmapping is an efficient particle filter. It is a SLAM algorithm based on 2D lidar using the RBPF (Rao-Blackwellized Particle Filters) algorithm to complete the construction of a two-dimensional grid map. Gmapping can build indoor maps in real-time, requiring less computation and higher accuracy in making small scene maps.
    RUN:
    First, place the mobile robot at an appropriate starting point in the environment where the map needs to be built because opening the launch file will open the IMU sensor and Odom odometer, and artificially moving it will cause the mobile robot to be distorted. First open the SLAM Scan file,
    Run the command:

    cd myagv_ros
    source ./devel/setup.bash
    roslaunch myagv_odometry myagv_active.launch
    

    alt text
    Then open the gmapping mapping file, and control the myAGV to move in the required space.
    Run the command:

    roslaunch myagv_navigation myagv_slam_laser.launch
    

    alt text
    Save the map when you see that the required space is created in the image
    Run the command to save the created map:

    rosrun map_server map_saver
    

    2.1.2 Cartographer algorithm
    Cartographer is a set of SLAM algorithms based on graph optimization.
    The cartographer algorithm mainly uses the concept of Submap. Whenever the data of a laser Scan is obtained, it is matched with the currently recently established Submap so that the laser Scan data of this frame is inserted into the optimal position on it. The Submap is also updated while inserting new data frames. A certain amount of data is combined into a Submap, if there is no new Scans are inserted into the Submap, it is considered that the Submap has been created, and then the next Submap will be created. The specific process is as follows.
    0_1662101428056_p4.png
    All created Submaps and the current laser Scan will be used for Scan matching for loopback detection. Loopback detection is performed if the recent Scan and all created Submaps are close enough in the distance. After the loopback detection is completed, the map construction is completed, too.
    The process of building a map with the cartographer algorithm is the same as the process of building a map with the Gmapping algorithm. First, open the ridar and the cartographer algorithm file to control the myAGV to walk in the area built to complete the map.
    alt text
    Some people may doubt why introducing two algorithms for building a map.
    Let's compare the two algorithms to solve this doubt.
    Gmapping can build indoor maps in real-time, requiring less computation and higher accuracy in building small scene maps. Compared with Cartographer when building a small scene map, Gmapping does not require too many particles and has no loopback detection, so the amount of calculation is less than that of Cartographer, and the accuracy is not much worse. When building a small scene map, compared with Cartographer, Gmapping is not only fast but also can build high-precision maps, and the number of particles required for Gmapping to expand the map can easily burst the memory. The latter can solve the problem of map expansion, and the effect of mapping can be excellent (the above picture is in the same terrain).
    0_1662101543574_gvsc.jpg
    2.2 Map Navigation
    In the map we built in the previous step, the robot can automatically navigate to a certain destination on the map. This all stems from the navigation function package of ROS.
    0_1662101568126_p6.png
    move_base in navigation:
    global planner:
    The overall path planning is carried out according to the given target position.
    In the navigation of ROS, the global route of the robot to the target position is calculated first through international path planning. The Navfn package implements this function. Through Dijkstra's optimal path algorithm, Navfn calculates the minimum cost path on the cost map as the robot's global route.
    local planner:
    Plan the avoidance route based on nearby obstacles.
    Local real-time planning is implemented using the base_local_planner package. This package uses the Trajectory Rollout and Dynamic-Window approaches algorithms to calculate the speed and angle (dx, dy, dtheta velocities) the robot should travel during each cycle.
    The base_local_planner package uses map data to search for multiple paths to the target through algorithms, uses some evaluation criteria (whether it will hit an obstacle, the time required, etc.) to select the optimal path, and calculate the required real-time speed and angle.
    Next, we will introduce the process of our reproduction:
    In the beginning, we had to determine the location of myAGV and used ACML in ROSto locate it. (Find the location of myAGV on the map)
    alt text
    After a few laps in place to complete the positioning, we can start automatic navigation.
    alt text
    When we click "2D Nav Goal" and then click the point we want to reach on the map, myAGV will start towards the target point, and we can also see in RVIZ that there is a planned path for myAGV between the starting point and the target point, it will move along the route to the target point.
    2.3 PS2 handler control
    As a mobile robot, wireless control is essential.
    We developed the ps2 handler to control myAGV so that myAGV can move freely and realize more possibilities.
    The following is the sequence diagram of our handle control. Maybe it can provide some ideas for you to do more development on the handle.
    0_1662101652187_手柄控制.drawio.png
    3 Summary
    What would you do if you had a mobile robot like this? What kind of myAGV can you refit it into in its split-structure detachable mobile robot? Is it to add some weapons to the mobile robot as a combat vehicle or to refit it to carry a variety of machines full of the future sense?
    Thank you for watching. Please comment if you have any good ideas!
    The above is our initial introduction to myAGV, and the follow-up will introduce myAGV equipped with different robotic arms, including the myCobot, myPalletizer, and mechArm.
    If you own an M5Stack, how would you combine it with myAGV?



  • Looks very nice. A couple of questions:

    • Your website says that the payload is 2000g – is that a typo? 2kg payload is not a lot and the arm that you show mounted on it looks like it might weigh a lot more than that.

    • Omni-directional wheels have notoriously poor odometry. Does the robot have an IMU that is used to compensate for that for localization?



  • Thank you for your approval!
    1 The maximum weight of a robotic arm is 1kg. The trolley can actually bear more weight, but it is not recommended to use it with more weight, as the motor cannot bear it.
    2 Yes, the myAGV has an IMU to compensate for that for localization.

    @kehu said in The highest cost-performance mobile robotic platform for individual developers.:

    Looks very nice. A couple of questions:

    • Your website says that the payload is 2000g – is that a typo? 2kg payload is not a lot and the arm that you show mounted on it looks like it might weigh a lot more than that.

    • Omni-directional wheels have notoriously poor odometry. Does the robot have an IMU that is used to compensate for that for localization?



  • Can it support ROS2?



  • At present, myAGV only supports the development of ROS for the time being. In the future, our team will migrate myAGV to ROS2 and look forward to it!

    @jacobhub said in The highest cost-performance mobile robotic platform for individual developers.:

    Can it support ROS2?