Just as I thought the collection of robots I played with couldn’t get any cooler, Elephant Robotics emailed me about the possible expansion for the UltraArm P340. This mobile robotic platform makes the arm go places. To make my excitement even bigger and create the ultimate envy in robotics engineers at work, the myAGV 2023 arrived on the same day as my work received ER-Flex – the industrial version of the same concept.
Robot arms can go places!
Everyone at work is stoked about the ER-Flex platform, an autonomous robotic solution to wheely an attached arm to wherever it needs to be to do the industrial things that bring lots of money! A dedicated team of software engineers will learn how to use it and how the company can take advantage of the robot in commercial solutions offered to customers.
Elephant Robotics brings the same concept to a less professional setting. myAGV 2023 is a Jetson Nano/Raspberry Pi based autonomous platform that can carry an array of various attachments including most of the robotic arms they offer. This miniature platform provides similar learning opportunities in STEM as expensive industrial robots that are always outside of the financial scope of most people who want to learn about robotics.
To make my life harder, I asked for the myAGV 2023 with Jetson Nano. I’m used to Raspberry Pi-based robots and myAGV 2023 is available in that flavour, but I always wanted to try the Jetson Nano platform, especially since it’s deemed superior for vision and AI-based projects.
From STEM to PRO
It’s easy to look at the £1044 price tag of the base model of the myAGV 2023 and think – this is a lot of money for a robot to play with, but myAGV 2023 isn’t your regular robot to play with. I would agree, except this is less money than you think if you are serious about learning about autonomous platforms.
myAGV 2023 allows you to experiment with the latest concepts of automation – vision-based mobility and robotics we all know from more typical scenarios. While these concepts aren’t new, in industrial settings, I only just started to see the drive for solutions like this. I have no doubt, that autonomous robotics will become a significant part of automation in industries. Being familiar with the concepts may just give you the edge over the competition in landing a new job in the industry.
It’s easy to look at my Blockly, Scratch-like programming interface and question how close the experience in coding professional robots is like. Once you see that similar concepts are used in industrial-grade robots, it’s easier to see immediate benefits in using a platform like myAGV 2023 as a learning tool.
myAGV 2023
The mobile platform comes in various configurations even before one considers strapping an arm to it. I’d recommend checking Elephant Robotic’s website to see all potential use cases involving additional displays, stereographic cameras and buckets to carry the load. I will focus on the model sent to me which comes fitted with the bed to add various robotic arms from Elephant Robotic’s product line.
The platform uses omni-wheels to enable movement in all directions and has an additional motor attached to one of the axes to level its bed on less-even surfaces. While the shell is made from high-quality plastic, the actual frame is made out of metal and gives a sturdy impression. Even without the UltraArm P340 attached, it’s on the heavier side (just over 4 kg) and can overcome basic slopes and drive over small surface imperfections.
To navigate, myAGV 2023 uses a small front-facing camera (8MP, not suitable for night operation) to recognise basic objects and QR codes and a LiDAR wedged between the layers of the robot to map the environment up to the effective range of 8m. The sides of the robot feature two drawers that can act as battery expansion bays, increasing the lifespan of the robot on a single charge beyond its 2-3h advertised operating range.
The entire I/O is located at the back and brings 2 x USB 2.0 ports, RJ45 for the Ethernet, 12V power passthrough for arms and attachment, HDMI and 14-pin GPIO header. The back also features a status light and a DC jack. By default, myAGV 2023 isn’t equipped with anything that would enable autonomous charging, but a plate at the bottom of the rover can be removed – and I think this is how you could expand that.
Jetson Nano
I have not opened it up, but inside the myAGV 2023, there is a 4GB version of the Jetson Nano board. It’s a 4-core CPU platform based on the Coretex A57 with 1.43GHz each. Where NVIDIA boards shine are the GPU components that bring 128 CUDA cores to aid computer calculations.
The platform has been proven time and time again to handle interesting vision and AI projects, and it made complete sense to offer myAGV 2023 with Jetson Nano configuration. If you are looking to save a buck, you can pick up the Raspberry Pi version which will lower the entry price to about £750. It won’t be as powerful and some software features are only available on the Jetson Nano version – but you will make a significant saving.
It’s shipped with a custom version of Ubuntu, containing software installed by Elephant Robotics like MySuite, ROS, ROS2 and testing utilities to diagnose the robot.
myAGV 2023 + UltraArm P340
If learning about autonomous platforms wasn’t hard enough, Elephant Robotics supplied me with a mounting plate for the UltraArm P340 I reviewed earlier. The installation takes about 10 min and it’s very straightforward. As myAGV 2023 can carry up to 5 kg on its “back”, the UltraArm isn’t really slowing it down and the robot is very nippy with the payload attached.
Apart from a simple wiring setup (plug-in power pass-through cable, then USB), small changes in the configurations are needed to enable the serial communications between Jetson Nano and UltraArm. These are covered well in the documentation emailed. From there onwards, all comms will be handled by the Jetson Nano inside the myAGV 2023, and you can add the attachments of choice to your arm (Pen, Laser Engraver, Suction Picker, Gripper or Universal Mount).
I got the suction gripper and it turns out, the pump can be neatly tucked inside one of the myAGV 2023 pockets. What’s even cooler, is the fact that the pocket has a routing for the airline and a dedicated connector for the pump. I don’t have to use the UltraArm connector and it helps keep all cables nicely routed.
Getting Started
To start with the robot, you will need a mouse, keyboard and a spare display. The I/O on the back of the robot enables you to plug everything in and access Ubuntu installed on the Jetson Nano. My advice is to enable X11vnc and set it on boot, so you don’t have to plug everything in each time you want to play with myAGV 2023. Also, the default password is Elephant – in case you are looking for it.
Some of the network settings were already defined, and I couldn’t connect via RJ45 until I reset the configuration to accept automatic IP allocation – if you struggle to get the robot online, check your network settings. The same applies to WiFi settings – do check them over – Jetson Nano supports 2.4GHz and 5GHz bands. Some testing WiFi settings are still saved, so I cleared it before use.
For obvious reasons, you want the machine to connect to wireless networks rather than drag the Ethernet cable behind it. Lastly, remember the wooden blocks that were shipped to me with the UltraArm P340? They make for perfect raising blocks to keep the Omni wheels in the air while you learn things. You don’t want this thing to drive off your desk accidentally!
Another thing that made my life easier was to fix permissions on the default installation:
sudo usermod -a -G dialout er
Without this, Python3 scripts to move the UltraArm needed sudo and using the block programming method required the software to be run as the admin.
Robotics: level HARD
I quickly gave up the idea of explaining everything there is about myAGV 2023. It’s about the scope of what the platform is capable of. Each aspect of the platform deserves a dedicated video series – and it’s simply not feasible to squeeze it all into a single article. I’ll focus on key takeaways from my experience and what I thought about myAGV 2023 and the learning experience so far.
To immerse yourself in robotics with myAGV 2023, you are expected to already know Linux and the basics in and outs of Jetson Nano. If your choice of robotic arms is fancier than UltraArm P340, you’ll need to add knowledge of M5Stack (ESP32-based) controllers and Raspberry Pi. All this before you even touch the robot itself. Don’t worry if you are intimidated by this, you are not alone.
ROS, ROS2 and more
Known as Robot OS, the framework simplifies working with various machines by streamlining the controls to terminal-triggered commands to write, test and diagnose robot routines. One of the robotic arms that we use at work for commercial projects comes with ROS support (API is then integrated into C# written controllers).
In practice, commercial robots often come with proprietary software and APIs to operate them, but you can see how seamless the knowledge transition from hobbyist-grade STEM robots like myAGV 2023 can be. Very basic tutorials will show you how to make your first map and how to point the robot in the right direction.
By far the easiest way to get started and move the robot around was to use AGV_UI launcher – a graphical interface to guide you through the process. At first, I was stubborn to try to figure out everything in ROS on my own, but after running into issues, and receiving support from Elephant Robotics I took the easy way to try things out.
Moving around
To kick things off, you need to enable LIDAR in the menu, as it’s needed to enable external controls. You can then select Keyboard controls or use Joystick in Alphabet mode to take over the vehicle controls.
As I wanted to see myAGV 2023 in action, I used the included PS-style controller to move it about the room. The controller gave me some problems at first, but a helpful email from Elephant Robotic’s team clarified, that if you hold the MODE button for about 3-4sec, you will switch the pad into the correct operating mode. That solved the issue for me of not having my buttons mapped correctly.
Minutes later I was able to move myAGV 2023 around using my controller. It’s a joy to see the robot zipping around my floor and test the Omni wheels in action by performing parallel movements. The next stage was trying to figure out how to use the included software to map the environment and put it into autonomous driving mode.
Mapping
Now that I knew how to move the robot, it was time to map my room and experiment with autonomous driving. Do note, that I was a bit clueless at this point, so I hope my words will ease you into the process.
Mapping allows you to create an instance of your surroundings and generate the map files. The three options in the menu, allow you to pick the mapping software. There is little difference between Gmapping and Cartogrhapter, but 3D mapping requires a camera that myAGV 2023 wasn’t equipped with.
I used Gmapping as this worked well. Open the mapping interface, grab the joystick (or keyboard) and start driving around, until the map has sufficient details about your environment. The map can be saved through myAGV_UI and it’s stored in ~/AGV_UI
. The map.pgm
and map.yaml
are generated and can be liked in your launch file.
Autonomous driving
To link your map to the launch file, paste the new files to /home/ubuntu/myagv_ros/src/myagv_navigation/map/
replacing any files that might have been there.
The next step is to open the map using the Navigation menu and pick a starting location for your myAGV 2023. Find a place on your map, which is easy to identify and that you can plant your robot in a specific orientation accurately each time. It’s important as you have to generate the initial coordinates of the robot – this is going to be your starting position each time the software is launched.
Use 3D Pose estimate to draw an arrow from the origin of the robot towards the direction in which the robot is facing. Be as accurate as you can, and use LIDAR data to check if the scan dots align with obstacles around it. This will generate XYA coordinates in the associated terminal window.
Open the launch file and modify the initial_pose_x/z/a accordingly with the obtained values.
cd ~/myagv_ros/src/myagv_navigation/launch
sudo gedit navigation_active.launch
Save your changes and launch everything again so the new map and the initial position load up. Now, that you can see the map and your robot in the initial position it’s time to get it to follow a path.
This caused me the most grief. Following instructions didn’t get me anywhere. It was the email assistance that helped me to understand that the navigation is split into single waypoint navigation and multi-goal which required a plugin.
By default, the software opens the single waypoint navigation and all it takes once you place the robot in the designated starting point – is to select the 2D Nav Goal and draw the arrow in the final destination – pointing it in the way you want the robot to be facing. If everything goes well, the robot will make its way to the point on the map. If you see it stuck, chances are, the initial orientation wasn’t accurate enough and myAGV 2023 thinks it just rammed itself into an obstacle.
Other
There is so much more to MyAGV 2023 that would take ages to learn, explain and master. For example, hidden inside the side pocket – there is a 4-pin connector that you can use with the pump gripper (and test using the myAGV_UI Start Detection option. Additional cameras can be used to map textures into your 3D Navigation maps, a lot of these options just have the hardware ready, with software needing to be developed in your own time. This brings me to the biggest problem of myAGV 2023.
Documentation
By far, the weakest link of the entire part is the documentation. myAGV 2023 was released only last year, and the included documentation is very barebone. It shows you basic concepts of working with myAGV 2023, but it fails to get into any depts of the usage. For this, you will have to trust Google to find relevant information. There is no hand-holding.
The hardware seems to be put together well, but myAGV 2023 isn’t an easy robot to start with. Sure, I could fool around with a Bluetooth PS-style controller in seconds, but this is not how myAGV 2023 is meant to be used.
In the current state, the documentation is fragmented, and each time I had a problem the team would email me a new link with a page, I have not seen before, from a completely different source. I’m very grateful for the help I received, but without them, I don’t think I would be able to move this robot at all. The list below refers to the most useful pages for this write-up:
- https://docs.elephantrobotics.com/docs/myagv-2023-en/2-serialproduct/2.13-myAGV2023/myAGV_UI/user_manual_en.html
- https://github.com/autolaborcenter/rviz_navi_multi_goals_pub_plugin
- https://docs.elephantrobotics.com/docs/myagv-2023-en/2-serialproduct/2.13-myAGV2023/PI/6-MapNavigation.html
The interactions between myAGV 2023 and UltraArm P340 were limited to a single page outlining how to pass a Python script to move the arm without extra information about how to use it in the context of the robot’s ability. As myAGV 2023 aims to bridge the gap between hobbyists and professionals, finding relevant information, videos and tutorials is crucial to see the platform take off. As a developer, you will feel at home trying to figure things out on your own, but as someone who is just getting started, it’s easy to get stuck in one place not sure where to move from there.
It’s clear to me, that Elephant Robotics needs to allocate some time and resources to make their excellently made robots easy to use and well-supported. I can’t fault the hardware – it does what it is supposed to – and once you know things- it offers interesting concepts.
Final Thoughts
Elephant Robotics has an impressive array of robots that integrate, and co-play nicely with my other favourite brand M5Stack. myAGV 2023 brings exciting possibilities to any robotics software engineer wannabe, at a relatively inexpensive price point, but it expects you to do the homework yourself. It will take weeks to learn and years to master, but can very well open a new path to professional opportunities. Got any thoughts on the subject? Let me know in this Reddit thread.
🆓📈💵 – See the transparency note for details.