https://github.com/interpause/isaac_ros-dev
https://github.com/interpause/isaac_ros-dev
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/interpause/isaac_ros-dev
- Owner: Interpause
- Created: 2023-11-08T04:40:16.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-13T14:03:50.000Z (about 2 years ago)
- Last Synced: 2025-01-23T01:08:48.480Z (about 1 year ago)
- Language: Shell
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Help
All in separate windows. Note `./activate.sh` has to be used in each shell first.
~`ros-humble-image-proc` (used for resize) has a bug, update:~ nvm added to layer.
```sh
# Ignore this, alr fixed.
sudo apt install ros-humble-image-proc
# Note: With everything else as constant variables, this is the only factor between it working & not.
```
Camera node:
```sh
ros2 run usb_cam usb_cam_node_exe --ros-args -r /image_raw:=/image_cam -p brightness:=100
# WSL2: usbipd hangs if camera bandwidth is too large.
ros2 run usb_cam usb_cam_node_exe --ros-args -r /image_raw:=/image_cam -p framerate:=10.0 -p pixel_format:=mjpeg2rgb -p brightness:=100
```
Container for nodelets:
```sh
ros2 run rclcpp_components component_container
```
Load ResizeNode into above container:
```sh
ros2 component load /ComponentManager image_proc image_proc::ResizeNode -r /image:=/image_cam -r /resize:=/image -p use_scale:=false -p height:=640 -p width:=640
```
Build packages:
```sh
# --symlink-install is bad cause it breaks when the container is rebuilt.
colcon build
```
Start YOLOv8 node:
```sh
ros2 launch isaac_ros_yolov8 isaac_ros_yolov8_visualize.launch.py model_file_path:=/workspaces/isaac_ros-dev/models/yolov8s.onnx engine_file_path:=/workspaces/isaac_ros-dev/models/yolov8s.plan input_binding_names:=['images'] output_binding_names:=['output0'] network_image_width:=640 network_image_height:=640 force_engine_update:=False image_mean:=[0.0,0.0,0.0] image_stddev:=[1.0,1.0,1.0] input_image_width:=640 input_image_height:=640 confidence_threshold:=0.25 nms_threshold:=0.45
```
## Realsense Attempts
Conclusion: Only Approach A works, for some reason. `librealsense2` must be built from source while the camera is connected. The Realsense ROS packages must also be built from source otherwise `apt` will overwrite `librealsense2`. Otherwise, the camera will fail to detect with "DS5 group_devices is empty." even if `lsusb` properly lists the camera. In summary, the Nividia ppl knew what they were doing. Most importantly, the first step in Nvidia's guide to setup udev rules on the host OS is crucial.
### Approach A
Follow .
- Add in additional `.realsense` layer
- See for more info regarding adding layers.
- Requires the camera to be plugged in during building: builds for exact hardware?
- Setups some udev rules and builds librealsense from source.
- Also compiles a specific old version of the Realsense ROS2 packages from source, is this still needed?
### Approach B
Follow .
- Uses prebuilt librealsense and Realsense ROS2 packages.
- If this works correctly, it saves time & hassle.
## Links
- Getting Started:
- Dev Environment Setup Guide:
- Jetson & Camera Sensors Setup Guide:
- Humble Docs:
- How to use components missing executable nodes from CLI:
- Params & remapping:
- Default camera library:
- Nvidia blog posts:
## Visual SLAM Demo
```sh
ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_realsense.launch.py
```
and
```sh
rviz2 -d isaac_ros_visual_slam/isaac_ros_visual_slam/rviz/realsense.cfg.rviz
```
There is an error in the launch file however, see for the fix.
## Using webcam on WSL2
-
-
-