Real Carter navigation

Hello
Real carter navigation issue. For carter navigation I created custom map using G-mapping method.
When i am trying to move carter facing some orientation issue like carter map view and the local map view are not matching looks like some scale issue check from Isaac sight.
./run apps/carter/carter.py --map_json <map_file> --robot_json <robot_file>
Use for carter navigation.

Need guidance for resolving issue.

Thanks

Hi,

Are you using Isaac and meeting some issues?
If yes, we will move your topic to the Isaac board for better support.

Thanks.

Hi AastaLLL,
Thanks for reply.
Currently I am trying ISAAC SDK base application for real carter v1.0
I followed Runing the carter application steps Carter — ISAAC 2021.1 documentation
for that used custom map
and when running navigation stack carter not moving.
need support.


image

Hi,

We are moving this post to the Isaac SDK forum to get better help.

Thank you.

The current forum itself Isaac SDK forum, it looks.
Could you please share here the Isaac SDK forum link?

@AkshayKamthe , were you following the instructions for setting up the legacy Carter 1 (big Segway wheels here) or the Carter 2 (smaller RMPLite 220)? The error log shows that the trajectory validation codelet was failing because it thought angular speed was beyond some envelope. Could you post your app json here? It could be that this checker is not configured properly and it is preventing commanded velocities from being sent out.

@hemals , Thanks for your support, we are navigating real carter V1, for navigation we are using tutorials/webinar/goal generator real app (goal_generator_real.app.json) and isaac sdk version 2021.1 Documentation .

(goal_generator_real.app.json)
{
“name”: “goal_generator_real”,
“modules”: [
“//apps/tutorials/webinar_1:goal_generator”,
“map”,
“sight”
],
“graph”: {
“nodes”: [
{
“name”: “2d_carter”,
“subgraph”: “apps/carter/2d_carter.subgraph.json”
},
{
“name”: “commander”,
“subgraph”: “packages/navigation/apps/differential_base_commander.subgraph.json”
},
{
“name”: “navigation”,
“subgraph”: “packages/navigation/apps/differential_base_navigation.subgraph.json”
},
{
“name”: “goal_generator”,
“components”: [
{
“name”: “message_ledger”,
“type”: “isaac::alice::MessageLedger”
},
{
“name”: “GoalGenerator”,
“type”: “isaac::tutorials::GoalGenerator”
}
]
}
],
“edges”: [
{
“source”: “goal_generator/GoalGenerator/goal”,
“target”: “navigation.subgraph/interface/goal”
},
{
“source”: “navigation.subgraph/interface/feedback”,
“target”: “goal_generator/GoalGenerator/feedback”
},
{
“source”: “2d_carter.subgraph/interface/flatscan”,
“target”: “navigation.subgraph/interface/flatscan_for_localization”
},
{
“source”: “2d_carter.subgraph/interface/flatscan”,
“target”: “navigation.subgraph/interface/flatscan_for_obstacles”
},
{
“source”: “2d_carter.subgraph/interface/diff_base_state”,
“target”: “navigation.subgraph/interface/state”
},
{
“source”: “navigation.subgraph/interface/command”,
“target”: “commander.subgraph/interface/control”
},
{
“source”: “commander.subgraph/interface/command”,
“target”: “2d_carter.subgraph/interface/diff_base_command”
}
]
},
“config”: {
“goal_generator” : {
“GoalGenerator” : {
“tick_period” : “10Hz”
}
},
“2d_carter.scan_flattener.scan_accumulator”: {
“isaac.perception.ScanAccumulator”: {
“min_count”: 900
}
},
“2d_carter.scan_flattener.range_scan_flattening”: {
“isaac.perception.RangeScanFlattening”: {
“height_min”: -0.44,
“height_max”: 0.71
}
},
“2d_carter.carter_hardware.vlp16_initializer”: {
“lidar_initializer”: {
“lhs_frame”: “robot”,
“rhs_frame”: “lidar”,
“pose”: [1.0, 0.0, 0.0, 0.0, -0.04, 0.0, 0.59]
}
},
“navigation.control.lqr”: {
“isaac.lqr.DifferentialBaseLqrPlanner”: {
“manual_mode_channel”: “commander.robot_remote/isaac.navigation.RobotRemoteControl/manual_mode”
}
},
“navigation.control.control”: {
“isaac.planner.DifferentialBaseControl”: {
“manual_mode_channel”: “commander.robot_remote/isaac.navigation.RobotRemoteControl/manual_mode”
}
},
“navigation.imu_odometry.odometry”: {
“DifferentialBaseWheelImuOdometry”: {
“use_imu”: false
}
}
}
}

And Current Config parameter for Carter navigation is as below
image
image
image
Carter is moving from source to destination with avoiding obstacles but not in smoothly navigation taking more rotation for finding path and also, we are getting same error (Range check has failed for “angular_speed”. The trajectory is not valid.)
Try to tune some parameters but not getting exact for smooth navigation.
Need your guidance to resolve issue.

A quick note to double check you have the Bosch BMI160 IMU in its 3D printed holder, securely attached to the robot so that it isn’t loose, and that it is in fact in the central 2 slots of the Carter’s battery, with the connector facing the forward direction (away from caster).

I can take pictures of the IMU connection of our Carter if it helps.

EDIT: I see you have “use_imu”: false. What happens if you actually use the IMU ?

@hemals , Thanks for your support, we are navigating real carter V1, for navigation we are using tutorials/webinar/goal generator real app (goal_generator_real.app.json) and isaac sdk version 2021.1 Documentation.
Details of documentation and SDK using for navigation of carterV1:

  1. Carter V1.0
  2. SDK: Isaac SDK 2021.1 (we could not find Isaac SDK 2020)
  3. For Hardware setup: we are referring (big Segway wheels)
    NVIDIA Carter — ISAAC 2020.2 documentation
  4. For application of carter navigation: we didn’t configuration changes and using the default configuration provided in the isaac sdk 2021.1
  5. App.json :(goal_generator_real.app.json) isaac sdk version 2021.1
    (goal_generator_real.app.json)

goal_generator_real.app.json (2.9 KB)

Carter is moving from source to destination with avoiding obstacles but not in smoothly navigation taking more rotation for finding path and also, we are getting same error (Range check has failed for “angular_speed”. The trajectory is not valid.)
Try to tune some parameters but not getting exact for smooth navigation. Need your guidance to resolve issue.

Have you tried the follow_me sample app ? It is in //apps/samples/follow_me

This sample uses the big wheel Carter and does not require a map. You print out an April tag 36h11_1 or any other tag from th 36h11 family, then make sure to edit the config for the app for the correct tag number, then hold the tag within view of the Carter’s Zed camera, and when you hold the autonomous button on the remote control you’ll see the robot move towards the tag.

In our experience, this moves fairly smoothly if the robot is built exactly according to spec, and with the follow_me app used without any modifications. Please note there is another separate follow_me app in the Kaya section. That one also works well but is a special version for Kaya only. For Carter, be sure to use the one in //apps/samples/follow_me, not //apps/kaya/follow_me

The advantage of using this sample app is that this would be independent of your map or the details of your edits to the goal_generator app.

It just takes a few minutes to try and perhaps this will show you if the issue is in your robot or your app.

Let us know how it works out and we can continue to compare notes and experiences using real Carter robots