Hi All,
Before posting an issue or a problem in the ArduRover Discussion Forum, please check the wiki table of contents, review the firmware release notes in the subforum, and search that subforum for existing answers to your question. Help avoid duplicate threads by finding other members with the same issue and their solution.
When formulating your post, use a descriptive title such as "rover will not navigate to waypoints in the Auto mode" (not "HELP!" or "Problem").
Please include the following information to help diagnose your query:
- Describe the problem you are having. What is the expected verses the observed behavior?
- Provide hardware information such as the brand and version of your autopilot, GPS, radio, and compass, as well as any other pertinent details about your rover setup.
- What version of the APM: ArdurRover2 firmware version are you running?
- For navigation issues, provide your tlog and/or dataflash log. Click here for instructions on retrieving a dataflash log.
TCIII
Comments
I started a new codebase for my powerwheels rover codebase. But honestly, the fact that I did meant I didnt spend much time adding back any functionality, and I have something that wouldnt be easily mission planner compatible. Im already ready to go back to ardurover code as soon as it has been sanitized, and a better structure for different drive mechanisms are in place.
While a new codebase may make it easier from a code and education standpoint, I fear the deviation would inherently make what is nice about the community as a whole (one fairly consistent codebase across all platforms) go away. I think having mission planner parameter management, similar setup and loop structures, shared navigation code, makes it easier to switch from rover to multirotor/plane code. I see some hurdles in optimizing the navigation code for rover, but I think that any enhancements made, could also directly benefit plane and add some interesting features to copter.
I see ardurover being the project that draws the bulk of the users in, due to much lower cost of entry and much lesser impact of crashes. And ultimately being the gateway to the bigger ardupilot community.
Just my 2cents.
-Dan
So what was the result of that discussion? What's gonna happen with the ardurover firmware?
Here is a video from one of those runs. After 23 seconds, it gets very boring. Forgive the background noise, I'm talking on the phone, wishing my friend a happy birthday and squeezing in a quick rover test and the same time...
Here is a google earth export (had to mess with the data, clamp to ground, etc to get the paths to appear.) These are only paths while in auto, not manual or learning. I'm pleased to have paths to work with. I'm excited to sort these issues out. It is really fun to flick the switch and watch it go. A few of these terminate due to high grasses, but most end in a loop, so I switch out of auto.
Tom,
Thanks. I thought I might just be handling it wrong, but I keep running out of battery before I feel confident I'm doing everything right. I have gotten it to run a half-circuit at times with two of the last three git pulls I did, but I generally end up having it circle endlessly when I think it should be headed for a WP. Once it starts doing that, I start over with learning, but generally don't get far. I have logs, but wanted to get in some nice clean runs before I shared in detail, since I cannot make easy sense of it yet and don't want anyone else going through any pains to do so either.
I don't know if this helps but it's a program someone wrote that I've held onto for the Arduino. It'll read up to 8 servo channels for you and display them in the serial monitor. I'm sure you could easily modify it for an 16x2 LCD so you wouldn't need a computer.
/*
RC_Serial_Print
by: Russ Sutton
Use this program to display RC Rx Output
signals for easier RC Tx Tunning.
Set serial port to 56700
*/
int ch1 = 0; // Gives digital pin 0 a name
int ch2 = 1; // Gives digital pin 1 a name
int ch3 = 2; // Gives digital pin 2 a name
int ch4 = 9; // Gives digital pin 9 a name
int ch5 = 10; // Gives digital pin 10 a name
int ch6 = 11; // Gives digital pin 11 a name
int ch7 = 12; // Gives digital pin 12 a name
int ch8 = 13; // Gives digital pin 13 a name
unsigned long duration1; // place to record inpulse
unsigned long duration2;
unsigned long duration3;
unsigned long duration4;
unsigned long duration5;
unsigned long duration6;
unsigned long duration7;
unsigned long duration8;
void setup()
{
pinMode(ch1, INPUT); // Tells Aduino pins are inputs
pinMode(ch2, INPUT);
pinMode(ch3, INPUT);
pinMode(ch4, INPUT);
pinMode(ch5, INPUT);
pinMode(ch6, INPUT);
pinMode(ch7, INPUT);
pinMode(ch8, INPUT);
Serial.begin(57600);
}
void loop()
{
duration1 = pulseIn(ch1, HIGH); //records inpulse from RC Rx
duration2 = pulseIn(ch2, HIGH);
duration3 = pulseIn(ch3, HIGH);
duration4 = pulseIn(ch4, HIGH);
duration5 = pulseIn(ch5, HIGH);
duration6 = pulseIn(ch6, HIGH);
duration7 = pulseIn(ch7, HIGH);
duration8 = pulseIn(ch8, HIGH);
Serial.print("CH 1 "); // Prints data to serial port
Serial.print(duration1);
Serial.print(",");
Serial.print(" CH 2 ");
Serial.print( duration2);
Serial.print(",");
Serial.print(" CH 3 ");
Serial.print( duration3);
Serial.print(",");
Serial.print(" CH 4 ");
Serial.println( duration4);
Serial.print(",");
Serial.print(" CH 5 ");
Serial.print( duration5);
Serial.print(",");
Serial.print(" CH 6 ");
Serial.print( duration6);
Serial.print(",");
Serial.print(" CH 7 ");
Serial.print( duration7);
Serial.print(",");
Serial.print(" CH 8 ");
Serial.println( duration8);
Serial.print(" ");
Serial.println(" " );
delay(2000); //changes smaple rate 2000 = 2 seconds
}
@Flavio
I think starting when it's an Alpha is the best time to start a wiki; this way we are starting with good information, with the understanding that it may change (and hopefully for the better) with newer releases of the firmware. Just this new Drone Builder's opinion, of course.
-
21
-
22
-
23
-
24
-
25
of 30 Next