# Carter¶

Carter is a robotics platform using a differential base from Segway, a Velodyne P16 for 3D range scans, a ZED camera, an IMU and a Jetson TX2 as the heart of the system. Together with custom mounting brackets it results in a powerful and robust demonstration platform for the Isaac Navigation stack.

## Running the Carter Application¶

1. Make sure the robot is setup as detailed in the Setup document.

2. Build an ARM target and deploy it to the robot with the following command:

bob@desktop:~/isaac$./engine/build/deploy.sh --remote_user <username> -p //apps/carter:carter-pkg -d jetpack43 -h <robot_ip_address>  Where <username> is your user name on the robot (nvidia by default), and <robot_ip_address> is the IP address of the robot. 3. SSH into the robot with the following command: bob@desktop:~/isaac$ ssh <username>@<robot_ip_address>


Where <username> is your user name on the robot (nvidia by default), and <robot_ip_address> is the IP address of the robot.

4. Run the carter application on the robot with the following command:

bob@jetson:~/\$ ./apps/carter/carter -m <mapFile-name>

5. Connect a PS4 gamepad. This can be both used to control the robot and is also required as a deadman switch.

Note

By default, the robot attempts to drive to a randomly chosen target goal. Closely monitor the robot and press the deadman switch on the gamepad to activate the robot. See the Joystick section for more information.

## Carter Application Nodes¶

The carter application uses all the nodes from the navigation stack and adds the following robot-specific nodes:

• LidarDriver: A node which receives 3D range scans from a Velodyne P16 on a network port and publishes them as a LidarScan message.

• RangeScanFlattening: Flattens a lidar message into a flat 2D range scan which is consumed by the navigation stack.

• SegwayRMPDriver: Communicates with the Segway hardware and is used to send control commands to the Segway and to receive wheel odometry data back from the Segway.

• Joystick: A generic joystick driver which publishes user input from a connected gamepad.

• SegwayJoystick: Consumes joystick data, checks for the deadman switch and decides between automatic or manual control mode based on the user input.