Initial Progress on "Hacking" an RC car for ROS

This post will concern largely my RC car hacking effort.

Computer / ROS side familiarization?

I don't know what I did, but I completely messed up my previous Ubuntu 14.04 installation, to the point the GUI didn't even load anymore. So I did a complete reinstall and updated to 16.04. I had not realized that 14.04 LTS has been around so long that it's support ends in 2019! In sync with that was ROS Indigo which also gets retired in 2019.

Anyway on the ROS side I was able to install everything, and got up and running real quick.

In addition to ros-kinetic-desktop-full, I installed the following packages to play around.
  • joy
  • teleop_twist_joy
The base installation also includes turtlesim. I forgot how easy it is to plug and play some things in ROS. From a base installation of ros to using my gamepad and driving around a sim turtle took only about 15 minutes?
  • rosrun joy joynode
  • rosrun teleop_twist_joy teleopnode /cmd_vel:=/turtle1/cmd_vel
  • rosrun turtlesim turtlesim_node
Here's a short video below


Though this was quite easy to set up, the controls aren't the most intuitive. I suspect that I'll be writing my own teleop node at some point to make things easier. The next thing I want to tackle is to decide on how I want to transmit my commands to the arduino that I plan on using to control the RC car.

I didi some preliminary Googling, and discovered a some stuff regarding rosserial and the fact that there is a rosserial_xbee package one can install. There's even an example of setting up arduinos to communcate witha  computer over xbee with the ROS: http://wiki.ros.org/rosserial_xbee/Tutorials/Example%20Network

I think that's really exciting and that might be a next step for me.

RC Car Hardware Exploration

So before I start tearing apart the RC car I figured I'd play around a little with it first. (If anyone is curious I bought the cheapest RC car I could find at Fry's that was larger than say my hand. The model name is called the LITEHAWK Lil' Max.)



It turns out with playing with it a little I was actually able to gather some knowledge about how the steering functions on the RC car. It might be a faint sound in the video, but it seems like there is a motor that constantly spins when you attempt to steer. The steering is essentially ternary, either straight, right, or left. I will investigate further, but I think there is a motor that applies a constant force to something to make the car steer and there are simply springs that reset the car to "straight". This seems like it might be a problem for me in the future because it seems like I'd have less control for the car if I can't pick a specific steering angle. This is exacerbated by the fact that the suspension of the RC car can make it's forward trajectory vary wildly.

Crazy Suspension


Going further the car appears to have 3 motors.  1 drive motor in both the front and rear axle and the aforementioned steering motor.

Obvious large motor modules 

4.8 V?

Another interesting observation is that the car appears to be powered off of 4.8V which is I'd say close to 5V? I have a few old powerbanks that I could see myself converting to makeshift batteries for this car. ALSO the battery included is only 800mAh and these leftover powerbanks are like 3000mAh, so I could see them running for muuuuch longer.

That all aside, I started ripping off the cosmetics of the RC car to see what's underneath.

 Top cover was easy to remove

 Power, Battery, Power Switch, and Motor connections are very obvious. even the ant. is labeled!
Strange turning gearbox...

There's one PCB with all the connections. As expected there are 3 motor connections. The turning gearbox is especially interesting. The output shaft of the turning motor looks as though my initial guess was right. It provides a constant force that will force the turning to a specific angle. This behavior is a bit undesirable, but I think I can live with it for now. (In the future, I intend on getting a 3D printer, and I could see myself printing a servo mount that could actually control the steering angle. For now though, the 2 channel h-bridge I got will be perfect. I should be able to connect the drive motors in parallel to one channel and the steering to another channel.

Unfortunately, I'll be not able to continue with wiring up the motors to the ESC because I think I need to get some connectors and stuff. But in the mean time I can start setting up my communications infrastructure.

Comments