Skip to content

A ROS Noetic driver for the FLIR Ladybug5 360° camera, supporting both native Ubuntu 20.04 and Docker deployment. This driver enables seamless integration of the Ladybug5 camera with ROS, providing access to all six camera feeds and supporting various camera settings.

License

Notifications You must be signed in to change notification settings

PrePLEX23/catkin_ladybug_ws

 
 

Repository files navigation

Ladybug5 ROS Driver

ROS driver for the FLIR Ladybug5 360° camera. Supports both native Ubuntu 20.04 installation and Docker deployment.

Repository Structure

catkin_ladybug_ws/
├── src/
│   └── ladybug_driver/     # ROS package
├── docker/                 # Docker support files
├── Dockerfile             # Docker build definition
└── docker-compose.yml     # Docker compose config

Installation Options

Option 1: Native Installation (Ubuntu 20.04)

  1. Clone the repository:
git clone https://github.com/Ali-Rizvi-1/catkin_ladybug_ws.git
cd catkin_ladybug_ws
  1. Install ROS Noetic (if not already installed):
# Follow instructions at: http://wiki.ros.org/noetic/Installation/Ubuntu
  1. Install Ladybug SDK:
# Obtain ladybug-1.20.0.79_amd64.deb from FLIR
sudo dpkg -i ladybug-1.20.0.79_amd64.deb
  1. Setup udev rules:
sudo groupadd -f flirimaging
sudo usermod -aG flirimaging $USER
sudo bash -c 'echo "ATTRS{idVendor}==\"1e10\", ATTRS{idProduct}==\"3800\", MODE=\"0664\", GROUP=\"flirimaging\"" > /etc/udev/rules.d/40-pgr-ladybug.rules'
sudo udevadm control --reload-rules && sudo udevadm trigger
  1. Build the workspace:
catkin_make
source devel/setup.bash

Usage

  1. Launch the camera node:
roslaunch ladybug_driver ladybug.launch

Option 2: Docker Installation and Setup

  1. Build and enter the container:
docker-compose run --rm ladybug /bin/bash
  1. Inside the container, install the SDK:
cd /ladybug_sdk
sudo dpkg -i ladybug-1.20.0.79_modified.deb
  1. Setup udev rules and groups:
# Create flirimaging group
sudo groupadd -f flirimaging
sudo usermod -aG flirimaging ladybug_user

# Create udev rules
sudo bash -c 'echo "ATTRS{idVendor}==\"1e10\", ATTRS{idProduct}==\"3800\", MODE=\"0664\", GROUP=\"flirimaging\"" > /etc/udev/rules.d/40-pgr-ladybug.rules'
sudo bash -c 'echo "KERNEL==\"raw1394\", MODE=\"0664\", GROUP=\"flirimaging\"" >> /etc/udev/rules.d/40-pgr-ladybug.rules'
sudo bash -c 'echo "KERNEL==\"video1394*\", MODE=\"0664\", GROUP=\"flirimaging\"" >> /etc/udev/rules.d/40-pgr-ladybug.rules'
sudo bash -c 'echo "SUBSYSTEM==\"firewire\", GROUP=\"flirimaging\"" >> /etc/udev/rules.d/40-pgr-ladybug.rules'

# Reload udev rules
sudo service udev restart
  1. Build the ROS package:
cd ~/catkin_ws
catkin_make
source devel/setup.bash
  1. Launch the node:
roslaunch ladybug_driver ladybug.launch

Opening Additional Terminals

To open additional terminals for the running container:

  1. Find the container ID:
docker ps
  1. Open a new terminal in the running container:
docker exec -it <container_id> /bin/bash

Published Topics

The driver publishes images to:

  • /ladybug/camera0/image_raw
  • /ladybug/camera1/image_raw
  • /ladybug/camera2/image_raw
  • /ladybug/camera3/image_raw
  • /ladybug/camera4/image_raw
  • /ladybug/camera5/image_raw

Launch Parameters

Parameter Default Description
scale 100 Image scale percentage
jpeg_percent 80 JPEG quality
framerate 10 Camera framerate
use_auto_framerate false Enable auto framerate
shutter_time 0.5 Shutter time (seconds)
use_auto_shutter_time true Enable auto shutter
gain_amount 10 Gain amount
use_auto_gain true Enable auto gain
trigger_enabled false Enable external trigger mode
trigger_delay 0.0 Trigger delay in milliseconds
trigger_polarity true Trigger polarity (true=rising edge, false=falling edge)
trigger_timeout 5000 Timeout for triggered capture (milliseconds)

External Triggering

The Ladybug5 camera supports external triggering through its GPIO interface. To use the trigger functionality:

  1. Enable trigger mode in the launch file:
<param name="trigger_enabled" value="true" />
  1. Configure trigger parameters:
  • trigger_polarity: Set to true for rising edge, false for falling edge
  • trigger_delay: Add delay between trigger signal and capture (milliseconds)
  • trigger_timeout: Maximum time to wait for trigger signal
  1. Connect your trigger source to the camera's GPIO pins
    • Use GPIO 0 for trigger input
    • Ensure correct voltage levels (compatible with 3.3V/5V TTL)

Example launch file with triggering enabled:

<launch>
    <node name="ladybug_node" pkg="ladybug_driver" type="ladybug_node" output="screen">
        <param name="scale" value="100" />
        <param name="framerate" value="10" />
        <param name="jpeg_percent" value="80" />
        <!-- Trigger configuration -->
        <param name="trigger_enabled" value="true" />
        <param name="trigger_delay" value="0.0" />
        <param name="trigger_polarity" value="true" />
        <param name="trigger_timeout" value="5000" />
    </node>
</launch>

Troubleshooting

  1. Camera Not Detected

    • Check USB connection
    • Verify udev rules are loaded
    • Ensure user is in flirimaging group
  2. Permission Issues

    • Log out and back in after group changes
    • Check device permissions: ls -l /dev/bus/usb
  3. Docker Issues

    • Ensure Docker service is running
    • Check USB device visibility: lsusb

License

MIT License

Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

About

A ROS Noetic driver for the FLIR Ladybug5 360° camera, supporting both native Ubuntu 20.04 and Docker deployment. This driver enables seamless integration of the Ladybug5 camera with ROS, providing access to all six camera feeds and supporting various camera settings.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 79.6%
  • Dockerfile 15.9%
  • CMake 2.5%
  • Shell 2.0%