org-arl / r2c2

ROS-based second-generation command & control system for marine vehicles
BSD 3-Clause "New" or "Revised" License
11 stars 4 forks source link

Integration of robot localization ros package with ros2 navigation stack #15

Open pankhurivanjani opened 4 years ago

pankhurivanjani commented 4 years ago

Instead of by default amcl package, integrate kalman filter based robot localization package: Steps for this:

  1. Understand the package and study codebase to see how integration of GPS with this package works: done gps-integrate-robot-localization
  2. Creation of fake GPS node: done gpssub.py
  3. Getting imu + wheel odometry data : done test2.bag
  4. Creating launch file for getting 2 ekf nodes one in doom frame and one in map frame running along with navsat transform node for conversion from GPS to utm : done

( PR approved for official ros package: #556 )

  1. Update navigation parameter file by replacing AMCL with robot_localization package (done)

  2. Integrate above things to visualize in rviz by mapping appropriate ros topics in the final config file, matching with that from data publishing topics.

pankhurivanjani commented 4 years ago

Hi @ngyewch,

I went through the changes made by you in UnityROS2 and my scripts are also exactly the same except for some syntax part. So, above all things have been done.

I am keeping next goals :

  1. Removing AMCL totally and relying on robot-localization package only.

  2. Changing the frequency of GPS data in navsat transform, I kept 30.0 in my scripts you have it as 10.0, I will experiment with more frequencies to see what works out better.

  3. Currently, the navigation failed while giving some 2D nav goals, I was thinking to look into parameters (not sure if this one is right to do now)

  4. In current setup we have an obstacle in the map, but instead we should have a geographical boundary as virtual obstacle. So, I will create new map for putting in our system, removing the obstacles in our unity environment for testing. (basically creating few tests)

  5. Creating ros script for giving waypoint navigation (ros2 script or planner from navigation stack), instead of doing it by 2D nav_goal in rviz.

  6. Last but not the least, documenting above stuff as @tbkoay suggested in last meeting.

@rajmis , @ngyewch, @tbkoay does this sound good to you, or do you have anything else in mind too?

ngyewch commented 4 years ago
  1. Changing the frequency of GPS data in navsat transform, I kept 30.0 in my scripts you have it as 10.0, I will experiment with more frequencies to see what works out better.

I'm not the expert on this, but from what I've read the update rate is typically 1Hz. But with some devices it can be 5-10Hz.

  1. Currently, the navigation failed while giving some 2D nav goals, I was thinking to look into parameters (not sure if this one is right to do now)

Not quite sure what you mean here. Which experiment are you referring to?

pankhurivanjani commented 4 years ago

I'm not the expert on this, but from what I've read the update rate is typically 1Hz. But with some devices it can be 5-10Hz.

Hmm.. I checked it by changing frequency, in simulation I don't see much of difference and yeah if we think from an device's frequency it doesn't make sense to make it 30 if it's around 1Hz

Not quite sure what you mean here. Which experiment are you referring to? I meant to modify parameters (like safe distance which robot is maintaining from virtual obstacle) and many others similarly to see if it affects the performance.

I was referring to nav failures in some cases where robot could go more nearer to the boundary but since it's safe distance maintaining parameter is bit large, it started spinning and nav failed. I observed this while running few trials with new map which has boundary instead of virtual obstacle.

ngyewch commented 4 years ago

I was referring to nav failures in some cases where robot could go more nearer to the boundary but since it's safe distance maintaining parameter is bit large, it started spinning and nav failed. I observed this while running few trials with new map which has boundary instead of virtual obstacle.

Any videos of that?