ros2 jazzy环境下使用ros2_astra_camera

 简介

        ros2_astra_camera是奥比中光提供的在ros2环境下使用其相机的例子(项目连接:https://github.com/orbbec/ros2_astra_camera),基于ros2 foxy/humble版本,但是没有ros2 jazzy版本的,由于ros2 jazzy已经有不少的修改,所以在jazzy版本下编译ros2_astra_camera会出现错误。这篇文章讨论了如何去修改才能在ros2 jazzy中编译成功ros2_astra_camera(注:默认已经安装好了ros2 jazzy).

        下面链接是已经修改好后的ros2_astra_camera:

     https://download.csdn.net/download/hulinhulin/92882934?spm=1011.2124.3001.6210

1. 下载ros2_astra_camera

     下载连接:https://github.com/orbbec/ros2_astra_camerahttps://github.com/orbbec/ros2_astra_camera

 2. 安装必要的依赖

        可以查看项目readme.md文件,里面有部分需要安装的依赖,其中的libuvc不需要自己去编译了,可以直接安装。以下是完整的依赖(也可能不完整,请根据提示安装):    

sudo apt install libgflags-dev  ros-$ROS_DISTRO-image-geometry ros-$ROS_DISTRO-camera-info-manager ros-$ROS_DISTRO-cv-bridge ros-$ROS_DISTRO-message-filters
ros-$ROS_DISTRO-image-transport ros-$ROS_DISTRO-image-publisher libgoogle-glog-dev libusb-1.0-0-dev libeigen3-dev libuvc-dev nlohmann-json3-dev ros-$ROS_DISTRO-tf2-eigen ros-$ROS_DISTRO-tf2-sensor-msgs ros-$ROS_DISTRO-tf2-ros

3.安装OpenNI和使用usb的规则

        如果已经安装,可以跳过这一步。没有安装的话,查看readme.md进行操作

4. 需要修改的内容

      a.将项目中的所有cv_bridge/cv_bridge.h 修改为 cv_bridge/cv_bridge.hpp
      b.将项目中的所有image_geometry/pinhole_camera_model.h 修改为 image_geometry/image_geometry/pinhole_camera_model.hpp

      c.文件astra_camera/include/astra_camera/point_cloud_proc/point_cloud_xyz.h中,

          添加:#include <sensor_msgs/point_cloud2_iterator.hpp>

       d.文件astra_camera/include/astra_camera/ros_param_backend.h的内容替换为:

#pragma once
#include <rclcpp/rclcpp.hpp>

namespace astra_camera {
class ParametersBackend {
 public:
  explicit ParametersBackend(rclcpp::Node* node);
  ~ParametersBackend();
  void addOnSetParametersCallback(
      std::function<rcl_interfaces::msg::SetParametersResult(const std::vector<rclcpp::Parameter> &)> callback);

 private:
  rclcpp::Node* node_;
  rclcpp::Logger logger_;
  rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr ros_callback_;
};
}  // namespace astra_camera

      e.文件astra_camera/src/ros_param_backend.cpp的内容替换为:

#include "astra_camera/ros_param_backend.h"
namespace astra_camera {
ParametersBackend::ParametersBackend(rclcpp::Node *node)
    : node_(node), logger_(node_->get_logger()) {}

ParametersBackend::~ParametersBackend() {
  if (ros_callback_) {
    node_->remove_on_set_parameters_callback(ros_callback_.get());
    ros_callback_.reset();
  }
}

void ParametersBackend::addOnSetParametersCallback(
    std::function<rcl_interfaces::msg::SetParametersResult(const std::vector<rclcpp::Parameter> &)> callback) {
  ros_callback_ = node_->add_on_set_parameters_callback(std::move(callback));
}

}  // namespace astra_camera

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视图猿人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值