@rmackay9 , yes the waeving is only in missions. When driving in manual mode all is fine.
When it approaches the waypoint and is closer to the waypoint it stops doing that… it then seems to home in and slow down pretty good.
I did not do any steering adjustments, it’s all still stock settings.
I will also try to get you a log file finally maybe you can spot something.
I have Stainds tank already working with Ardurover, as you can see here
and here (tank followed by 3D printed copter in folllowme mode)
It was quite tricky to tune steering, because the tank is extremely sensitive on turning.
I had to reduce the steering PIDs to very low values … and can’t remember what else I changed. With the standard settings the tank was waeving so extreme and uncontrolled, that I had to reprint a lot of the gearboxes until I found these settings
I use BLHELI32 ESC with “Bidirectional 3D” and Oneshot125 and for now.
This params file is for Rover 3.5.1 and you probably can’t use it directly, because of rotated AUAV-X2.1 FC. But maybe it is helpful.
20191206-Tank-351.param (13.3 KB)
Because of your youtube video I used Stained RC Tank as a base
I made another one from thingiverse but that one had brushed motors and I could not adjust the track tension.
That’s when I saw your video I thought… hmm… That’s it!
Thanx for the param file, I hope I can derive your PID’s from it.
It is indeed very sensitive to turning and thought that had something to do with it.
Did you add any collision avoidance senor on it yet? I would like to add someting at the front so it can avoid and go around something it is unable to pass.
Love the drone following, how did you do that?
ah, I see
I have a TFmini LIDAR attached.The TFmini is working, but I could not get the avoidance functionality to work so far. Maybe I have more luck with the new bendy ruler algorithm introduced with Rover 4.0.0. But not before spring. It is no fun now outside in winter.
The copter follow-me is quite simple. Tank and copter both have a SIK telemetry radio with the same frequency so they can communicate with each other. Copter is in follow-me mode, so it just follows the GPS position received from the tank. With a SIK duty cycle of 50% I have groundstation, copter and rover in a kind of network. There are a lot of dropped Mavlink packages, but it works.
@RainFly, really nicely done on the Copter-following-Rover video. I’m pretty sure this is the first recorded test of this. great!
@rmackay9 When I look at Rainers param file, what variables are interesting to check for steering and navigation?
I don’t want to risk just randomly changing all parameters when they are not relevant for the problem.
@OldRaven, the parameters starting with ATC_ are likely to be the most important for attitude control. Also those starting with WP_ and NAVL1_ could be good to copy over.
Finally weather getting better for testing.
@RainFly thanx for you log file! The steering settings worked perfectly on my Rover.
I began testing missions and survey grids with the rover and it’s going really well.
I’ll try to shoot some video for those interested.
As long as the grass is not too long it has no problem at all. It draws between 3 - 4 A when running at half speed (which is quick enough)
Next thing I want to add is a collision avoidance sensor at the front.
It should be able to run a survey mission and steer clear of anything getting in it’s way.
I like to try some supported sensor first, and later see If I can replace the sensor part by using a companion computer and a vision camera of some sort.
Love to experiment with for example a Jetson Nano.
But I know nothing yet of using companion computers with ardupilot yey and stuff like mavros.
@rmackay9 Do you hace any advice on what to start with for a collision avoidance sensor that does not break the bank.?
Currently testing survey missions.
First part is just running raw missions and see how it holds up.
I’m getting some compass variance errors, and sometimes after driving around for a while the heading seems to be off by around 45-90 degrees.
I’m guessing the compass has to much magnetic interference from where it is mounted so I’m drawing a GPS mount to place it higher.
And see if get it to behave better.
Also when I compare the BN880 with for example my matek gps on my quad, the performance (getting a lock) is worse… but since this is a test and I plane to go for somethin like a HERE for the bigger rover… I’m fine. As long as it does not give me more troubles testing.
My next step is adding a layer of intelligence to avoid obstacles.
I added a benewake tfmini to the front to do some simple collision stuff.
So far only tested in steering mode and it stops.
I had it mounted facing straight forward which gave me false positives when it bounced around while driving, so i angled the senser upward about 5 degrees to see how it goes.
I’l report back when I’ve done the first simple tests.
Hi @OldRaven! Been following your posts here trying to set up bidirectional drive with brushless motors but am having some trouble… My rover uses 4 brushless motors driven by an Aikon 4 in 1 BLHeli32 ESC (set MOT_PWM_Type = normal) with skid steering by setting SERVOx_FUNCTION for servos 1 and 3 to left and right throttle. I’ve successfully driven and done waypoint missions before enabling “Bidirectional 3D” in BLHeli32 (I don’t seem to have “Bidirectional Soft” as an option) so I think my setup is ‘correct’ up until that point. The issue after changing the ESCs is that they no longer initiate fully (only get 1 out of 2 tones after pressing the hardware safety switch), and all motor functions no longer work: driving, motor testing, etc.
I think my problem is that the ESCs are set to initialize at a PWM value of ~1500 while the servo outputs from my Pixhawk4 FC are giving it ~1000. I tried setting the SERVOx_TRIM params for servos 1 and 3 (my vehicle is also skid steering) to 1500 but after reconnecting/resetting the autopilot, these values reset to their SERVOx_MIN and do not save. Can’t seem to find a clear answer on fixing this, have already tried reflashing firmware from Rover V3.5.0 to V4.0.0. I’ve also tried recalibrating my radio and using both a sliding and centered throttle. I’m a bit stuck on this!
-Pixhawk 4 FC + PM07 PDB
-4x T-Motor 4012, 48kv brushless motors (with cycloidal reductions)
-Aikon AK32 35A 4in1 ESC
rover_V4.0.0_8-16-20.param (16.1 KB)
Hi @Nossa, did you try to set SERVO_BLH_AUTO=0 ?
In my case that solve the issue. One ESC are setup and I don’t need the pass-try any more, I disabled it.
@urlu75, thanks for the quick response! In Rover V4.0.0, I don’t seem to see a SERVO_BLH_AUTO. I’ve tried setting SERVO_BLH_MASK and SERVO_BLH_REMASK to 5 (for Channels 1 and 3 of the skid steering control) to allow motors to reverse direction. Did not seem to change anything.
i have got rover 4.1.0dev running with DSHOT150 on an Omnibus Nano V6, which is an STM32F4 board.
MOT_PWM_TYPE,5 … which is DSHOT150
SERVO_BLH_MASK,4 … ESC is connected to CH3
SERVO_BLH_REMASK,4 …forward/backward Motor on CH3 with direction “Bidirectional 3D”
Maybe you can also try MOT_SAFE_DISARM = 1
Then I could connect with BLHeliSuite32 and verify, that the ESC is in DSHOT-mode.
In BLHeliSuite32 I got an error after connect, but could set params and flash new BLHeli version without problems.
@nossa , @urlu75 and @RainFly , thanx for the feedback!
I tried a lot of options but cannot get dshot working.
I still believe it has something to do with the rover firmware I’m currently running.
like @RainFly I want to upgrade it to dev4.1 build to see if it has something to do with the formware as I remember there was an issue with the f765 and dshot in copter 4.
maybe my firmware is still suffering from that.
@RainFly can I flash the 4.1dev build without loosing all my current settings?
Just an update…
Checked all the settings, and the SERVO_BLH_MASK and REMASK where not set.
I set them both to include channel 1 and 3 and now the motors run with DSHOT 150 protocol.
I can finally continue testing.
I switched to an frsky reciever and am now using the yapoo telemetry script on my transmitter as a sort of groundstation. Makes it easier to see what is happening.
I also added an ESP8266 inside the Rover running a mavlink wifi bridge.
When I want to upload a mission I can just connect to the rover if it is close and then upload a new mission. I have no need (yet) to keep a groundstation connected.
I have a raspberry pi 3 setup as a companion computer that can also stream video.
Later I will add a modem to it so I can control the Rover over 4g/5g
I also have a benewake lidar on the front for collision avoidance.
But that still needs setting up further and testing… it does not do yet what I want.
The goal is to use it with a bendy rule algorithm to avoid obstacles it detects in front when running a waypoint mission.
Okay! Just wanna close out my question for anyone trying to follow! Thanks @RainFly, @urlu75, and @OldRaven for the param recommendations. I am also successfully able to use DSHOT150 with bidirectional control of brushless motors and an Aikon 4 in 1 ESC. I used the following params running Rover V4.0.0:
SERVO_BLH_Mask = 5 (channels 1 and 3)
SERVO_BLH_REMASK = 5 (channels 1 and 3)
MOT_PWM_TYPE = 5
PILOT_STEER_TYPE = 0
I did have some issues getting the SERVO_BLH_x params to save, they seemed to eventually take randomly, perhaps after a restart of the autopilot. For clarification also, I’m running a Mode 2 transmitter with a free-moving throttle that maps reverse from 1500-1000 and forward from 1500-2000. I’ve also heavily decreased all acceleration gains to ease jerking during direction shifts which could help if you are using ‘fragile’ 3D printed drives like mine. Anyways, here is a video to visualize the control and a dump of my parameters. Thanks everyone!
@nossa great to see your rover test.
When you change some parameters in Ardupilot, although you save the parameter they will not be in effect until you power cycle your Flight controller.
Fort testing jerky steering… if you want to save your printed transmissions, for me it helps to test in “steering” mode as it seems more gently. Acro mode for example seems to not really care about acceleration with my rover
@RainFly , how did you update to 4.1dev? I don’t see it ardupilot when cheking for beta firmware updates.
I do see one online in the firmware map.
I don’t want to flash it without loosing all my current settings and having to go through the setup again.
Select Ctrl>Q from the Install Firmware screen in Mission Planner. It will populate with the latest -dev version. You won’t lose your settings but as always save the parameter file before doing so anyway.
@dkemxr found it. Thanx.
Should I use the the hex with or without bootloader?
If you used Ctrl>Q from Mission Planner just use the .apj file that is selected as default.