A comma body update
For those who haven’t seen one yet, the comma body is an attachment for your comma 3X. It turns your C3X into a simple robot. Robotics is limited by software not hardware, this is why impressive robots like ATLAS have no value in industry today. The robots that are useful today live in very sanitized factory environments that require less complex software to deal with. The comma body was designed to be a very convenient platform to experiment with robotic software. A comma 3X has plenty of compute to run modern neural networks. It runs Linux, has great sensors, and good connectivity.
Out of the box it comes with a remote control webserver that streams over WiFi (available at {ip_of_device}:5000 as soon as the body is online). It is a development kit, and you will need to write code to get the most out of it, keep that in mind if you are buying one.
The winners of COMMA_HACK_4!
— comma (@comma_ai) October 2, 2023
1st place: @armand_dpl @lnofx @riantouchent
2nd place: @stevengongg @ivan_yevenko @clayhaight
3rd place: @HyperSmactive pic.twitter.com/HtqopFBesc
Last October we organized a hackathon with comma bodies where teams competed to complete an indoor navigation challenge fully autonomously, with some impressive results. Check out the contestants’ cool projects here.
Body Jim
Today we are announcing a new python package that gives a gymnasium-like API for the comma body. All the controls, video, and sensors are streamed using webrtc. This makes experimenting with the comma body a breeze. Additionally, the API is the same whether you run code on the device or remotely on your PC. See how it works with several cool examples here: github.com/commaai/bodyjim
import bodyjim
# create environment requesting driver and front wide cams and accelerometer/gyro messages
env = bodyjim.BodyEnv("<body_ip_address>", cameras=["driver", "wideRoad"], services=["accelerometer", "gyroscope"])
# control the body using joystick with x/y axis
obs, _, _, _, _ = env.step((1.0, 0.0))
# get frames and messages
dcam_image, ecam_image = obs["cameras"]["driver"], obs["cameras"]["wideRoad"]
accelerometer, gyro = obs["accelerometer"], obs["gyroscope"]
To balance or not to balance
Originally the comma body shipped as a balancing 2-wheeled robot. For the hackathon we made helper wheels so they did not need to balance. Balancing was relatively difficult for the body because the center of mass is close to the wheels, and when it hits walls or certain obstacles it can fall. So we are deprecating that, and shipping the bodies with the helper wheels now. This makes the body more user friendly, so you can focus on the ML experiments it was designed for. If you already have a body you will receive an email with an offer to ship the upgrade kit (wheels and helmet for collision protection) to you for free, or you can print it yourself.
We’re hiring
Like playing with robots? We’re hiring!