Folks, here is what I want to do: an autonomously driven snowmobile. I have the mechanical parts working well for the directional control (I can turn the handlebar left and right with the linear motor - I hope you can see it in the picture). The throttle also works, though not shown in this picture. What I would like to do is use the APM board to control this, to give the snowmobile a set of waypoints to navigate to, and then return.
The purpose is to drive the snowmobile in a grid to measure properties of the snow and ice (the picture is from Antarctica) - and to free up a scientist from driving in a grid for hours.
Right now I control the snowmobile over a radio - manually turning left or right - not very satisfying.
- The steering is controlled by an H-bridge that puts either +12V or -12V on the motor to extend or retract it. When there is 0V on the lines, the motor doesn't move. (I use a 500Hz 50% duty cycle PWM wave to control the speed at which the arm moves).
- The throttle is a PWM servo motor (1ms for zero throttle, 2ms for full throttle).
I imagine the latter of these (the throttle) should integrate easily with the APM board. How to drive the steering from the APM board? Do I need to have an interface board between the APM and my H-bridge?
Doable? A lot of hacking of the code? I don't know Arduino, though it looks relatively straightforward. I am using a propeller (www.parallax.com) to communicate with the radio, to read the GPS, and to drive the steering and throttle.
(right now the GPS is ignored, but hopefully with APM board it can be used to control the steering).
I'm new to this community (wish I had stumbled on this about a year ago!!)
How good is GPS down there? And compass?
Sounds workable! What a project!
You are going to need a way to convert the PWM steering output of the APM into a signal that can be used by the H bridge. I suspect that you could use an Arduino Uno to decode the steering PWM into right (CW) and left (CCW) steering commands for the H bridge. I suspect that the code already exists on the Arduino Forum for converting PWM to H bridge motor direction commands.
I have my 6WD rover moving along within 1.5 to 3 feet of the line between waypoints without even any tuning. Just ran a couple circuits of my course this morning and the results were very satisfactory. I will use the 6WD for RoboMagellan competition. My E-Maxx is working well too and I hope to take it to the Sparkfun competition next year.
Good to hear!
I'm still fighting my 6WD pulley system. The smaller driven pulley will slip under large torque (turning). I re-designed the motor mounts to allow better adjustment, thinking the belts were not tight enough. Might have helped a little. Next is to machine a new set of 1:1 pulleys, and see if the increased driven pulley size will drive without slipping.
I was playing around with the APM 2.0 a few days ago, and set up the R/C receiver per
Downloaded new MP 1.2.33 mav 1.0
Firmware updated ArduRover v2.2b last week.
but I don't see the sticks working as I'd expect.
* Right stick U/D does throttle (expected)
* Right stick L/R does roll (?)
* Left stick U/D does Radio 7
* Left stick L/R does nothing
* 3-way sw does Radio 8
What about Yaw? Is that Steering?
Futaba T7. Ch 1 and 2 on Right stick (steering/throttle) when connected to RoboClaw (expected)
So want does APM really want? I remember (weak point) before that I couldn't get outputs from APM as I expected (probably why).
What stick are you using? what "bars" move on the configuration screen? Or what bars are supposed to move?
If I get the pulleys swapped out, I'll see if I can drive with APM. Ubloc GPS seems to work good, even indoors!
I guess I need a course! Yard isn't big enough. I have some property over in the central valley, but that's two hours away.
@Linus: How does the code deal with turning radius of the vehicle? Because of the skis and the throw of the linear motor, I can't make sharp turns. Or do I deal with that in the ordering/positioning of the waypoints and put the waypoints "outside" the grid that I really want?
@TCIII - I think I can use my existing board to interpret the PWM from the APM into the proper drive for the H-bridge.
@KM6VV - GPS is great, compass needs the declination (can be anything up to 180degrees! - in other words North is thataway and Magnetic North is... exactly the other way!!)
the rover currently does not account the turning radius of the vehicle.
the apmrover for now is primarily used for much smaller projects and i can unfortunately not help so much with code because im just a aspiring junior developer for now.
were actually lacking people jumping in.
one thing you can do is tune the NAV_ROLL_P to adjust steering behavior according your vehicle and setup your waypoints for larger turns manually.
it also depends on the speed you want to go and how large the grid is.
I think I'd steer around the waypoints, (maybe use a couple) allowing for the turning radius.
Yeah, I'd heard about the usefulness of a compass down there!
The aileron part of the right joystick is used to turn the rover. So in Radio Calibration screen you should see the roll bar move at the top of the Calibration window. The rudder joystick is not used for steering. The elevator part of the right joystick is used for the throttle and you should see the throttle bar move. Remember the present v2.30 alpha code does not use the cruise throttle parameter for the rover cruise speed. The code uses the max throttle parameter for the rover cruise speed.
The present code makes really sharp right angle turns whether you are using skid steering or standard front wheel steering. I know because I have both kinds of rovers and have tested the code recently.
OK, It's correct for all but the momentary switch on 7. I just assigned 'H' on my radio to 7, so that should do it. However, the R/C seems to keep loosing connection. While on the calib page, after a while, the controls don't work. Also looses PC port connection. Any ideas?
APM 2.0 powered off of USB.
I have found that MP 1.2.33 is really flakey. It won't work with pre-HAL ArduRover2 v2.30 code and with v2.20b. I am using MP 1.2.30 with pre-HAL ArduRover2 v2.30 and MP 1.2.13 with ArduRover2 v2.20b. The IR sensor sonar does not work in the HAL versions of ArduRover2 v2.30. Actually ArduRover2 v2.20b works just fine for now. I think that it is going to be a while before the diy dones developement team can get to the ArduRover2 code.