Zhenpeng Ge

Results 7 issues of Zhenpeng Ge

Signed-off-by: zhenpeng ge --- ## Basic Info | Info | Please fill out this column | | ------ | ----------- | | Ticket(s) this addresses | (add tickets here #3014)...

## Environment * OS Version: Ubuntu 22.04 * binary: Garden * If this is a GUI or sensor rendering bug, describe your GPU and rendering system. Otherwise delete this section....

bug

## Feature request #### Feature description 使用`robot_state_publisher`发布机器人相关tf,便于其它任务使用tf,主要的frame包括`base_link`, `yaw_link`, `pitch_link`,`camera`,`lidar` . #### Implementation considerations 实现步骤: * 使用[sdformat_tools](https://github.com/gezp/sdformat_tools),将机器人的SDF文件,自动转化生成URDF文件。 * publish云台关节角度`joint_states` 。 * 使用`robot_state_publisher`发布机器人相关tf,其中依赖机器人URDF文件以及关节角topic `joint_states` . 多机器人会出现tf frame冲突问题,可采用两种方案: * 方案1:`robot_state_publisher` 提供了`frame_prefix`参数,可以为`link_name`加上prefix,这里采用`robot_name/link_name`形式。 * 方案2:将`\tf`和`\tf_static`...

## Feature request #### Feature description `rmoss_cam` 中`CamClient` 对ROS消息进行了进行了封装,只暴露如下接口: ```c++ typedef std::function Callback; virtual bool connect(const std::string & camera_name, Callback cb); ``` 这种隐藏ROS层细节能够使开发者专心于图像开发,而不用关心ROS消息处理过程,但是这样导致无法使用Message Filter中消息同步等工具,而消息同步在某些RM场景中可能十分有用,比如RM中的相机和IMU的同步。 #### Implementation considerations **方案一**:扩展`CamClient` 类,适配message_filters接口,只需要继承`message_filters::SimpleFilter`即可 (可实现类似`message_filters::Subscriber`的效果),然后使用`message_filters::TimeSynchronizer...

enhancement

## Feature request #### Feature description 现在 `CamClient` 支持 `get_camera_info()` API,建议增加获取当前相机参数,设置当前相机参数的方法,API如下: ```c++ std::map get_camera_parameters(); bool set_camera_parameters(std::map & params); ``` #### Implementation considerations * 在`rmoss_interfaces`中定义相关ROS srv文件。 * 类似`get_camera_info()`实现,`CamServer`和`CamClient`通过ros service通信实现。

enhancement

## Feature request #### Feature description 在自瞄中,需要在相机与云台之间做坐标变换,采用tf2可以方便的管理维护坐标关系,其还提供了简洁的坐标变换接口,以及tf消息同步功能(将IMU转换为tf,间接的实现IMU-相机同步),可以极大的方便开发。 #### Implementation considerations (1)建立坐标系之间关系: * base_link->gimbal_yaw->gimbal_pitch->camera->camera_optical->target(识别到的目标装甲板):其中gimbal_yaw和gimbal_pitch根据云台角度实时更新维护,camera_optical->target之间的变换由自瞄算法计算出来。 * 在使用枪管瞄准的时候,需要使用一个额外的参考坐标系gimbal_home,用于计算瞄准所需要的云台转动yaw,pitch角度,其为当云台角度为0时的gimbal_pitch参考系,可使用静态tf维护base_link->gimbal_home。 > Tip: > * gimbal_pitch->camera->camera_optical 可简化为gimbal_pitch->camera_optical > * gimbal_home参考系可以灵活选取,如果base_link->gimbal_home绑定静态变换,那计算出来的yaw为绝对角,如果gimbal_yaw->gimbal_home绑定静态变换,则计算出的yaw为相对角度。 (2)瞄准解算: * 使用tf2工具,将target转换到gimbal_home坐标系下,计算云台转到绝对角。

enhancement