使用Docker将ros1自定义消息通过rosjava_bootstrap生成jar包

ops/2025/3/1 23:20:14/

文章目录

  • 预准备环境
    • rosjava_bootstrap
      • 坏消息
      • 好消息
  • 环境安装
    • docker安装
    • rosjava_bootstrap仓库
    • rosjava_center仓库
    • 修改rosjava_bootstrap代码
    • 拉取docker镜像
    • 放置自己的自定义消息
  • 启动docker编译

预准备环境

rosjava_bootstrap

rosjava_bootstrap是将自定义的ROS消息生成java代码的插件,目前官方只维护到kinetic版本,也就是说我们需要将这个ROS环境设置为kinetic版本。

坏消息

  • 需要安装一个Ubuntu16.04版本的系统
  • rosjava_bootstrap的maven仓库已经失效了,尽管你搭建了kinetic版本的ROS环境,100%无法编译出相应的jar

好消息

  • ROS官方提供的相应的docker镜像,我在上面安装了rosjava
  • rosjava_bootstrap的maven仓库我已经修改了,可以改成自定义的URL

环境安装

docker_13">docker安装

首先安装docker,我用的是window+ WSL,所以我下载的是docker-desktop版本

docker下载地址

rosjava_bootstrap仓库

我修改过的仓库github链接:https://github.com/ceoifung/rosjava_bootstrap

# 新建一个工作空间
mkdir ~/catkin_ws/src -p
cd ~/catkin_ws/src
# clone仓库
git clone https://github.com/ceoifung/rosjava_bootstrap

rosjava_center仓库

这个仓库是在rosjava_bootstrap编译出jar包所需的各种依赖

  • 预览地址:https://ceoifung.github.io/rosjava_center/

  • 仓库地址:https://github.com/ceoifung/rosjava_center

首先把仓库下载下来

git clone https://github.com/ceoifung/rosjava_center

仓库内容如下:
在这里插入图片描述
然后在下载的rosjava_center目录启动一个http目录浏览服务,如果装了nodejs的,可以安装一个anywhere。没有的话,可以IIS或者NGINX或者别的什么,只要能作为http目录浏览服务器,能够通过网络下载上面的内容就行。以下是我用window IIS启动的一个目录浏览服务
在这里插入图片描述

修改rosjava_bootstrap代码

在rosjava_bootstrap代码中,我默认将所有的maven地址设置成了本地的http文件目录服务器的地址

http://192.168.3.109/rosjava

全局搜索仓库,将上面的地址修改为rosjava_center的目录浏览服务地址,比如我上面的地址是
http://192.168.3.109/rosjava,那我就不用改了

docker_52">拉取docker镜像

默认已经集成好了一个rosjava的docker镜像。可以通过如下命令,拉取我制作的镜像

docker pull ceoifung/rosjava-ceoifung

放置自己的自定义消息

上面步骤完成之后,可以将自己的自定义ROS消息,放到catkin_ws/src目录中

rosjava_bootstrap也需要放到catkin_ws工作空间,注意不要漏掉了

docker_62">启动docker编译

通过如下命令启动docker

# 启动docker,挂载catkin_ws目录到docker的home目录下
docker run --rm -it -v ~/catkin_ws:/home/catkin_ws ceoifung/rosjava-ceoifung:latest /bin/bash# 进入镜像之后
cd /home/catkin_ws
catkin_make
# 编译成功之后,就可以在devel目录下找到编译出来的jar文件了

编译成功之后,就可以在devel目录下找到编译出来的jar文件了

如果编译失败,检测一下自己的rosjava_center 目录浏览服务是否有效,每个文件是否可以通过http下载下来


http://www.ppmy.cn/ops/162350.html

相关文章

DeepSeek行业应用实践报告-智灵动力【112页PPT全】

DeepSeek(深度搜索)近期引发广泛关注并成为众多企业/开发者争相接入的现象,主要源于其在技术突破、市场需求适配性及生态建设等方面的综合优势。以下是关键原因分析: 一、技术核心优势 开源与低成本 DeepSeek基于开源架构&#xf…

cuda-12.4.0 devel docker 中源码安装 OpenAI triton

1,准备 docker 容器 下载docker image: $ sudo docker pull nvidia/cuda:12.6.2-devel-ubuntu20.04 创建容器: sudo docker run --gpus all -it --name cuda_LHL_01 -v /home/hongleili/ex_triton/tmp1:/root/ex_triton/tmp1 nvidia/cuda:12.6…

python 网络安全常用库 python做网络安全

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 最近有同学问我,说想用Python写渗透辅助工具,但是却不知道该如何下手,该怎么办。我告诉他,细化渗透测试的过程&…

深度生成模型(二)——基本概念与数学建模

上一篇笔记中提到了端到端模型底层核心采用了深度生成模型,先简单梳理一下 生成式人工智能(Artificial Intelligence Generated Content,AIGC)经历了从早期基于概率模型和规则系统的方法到现代深度生成模型的跨越式发展 深度神经…

SQL Server 创建用户并授权

创建用户前需要有一个数据库,创建数据库命令如下: CREATE DATABASE [数据库名称]; CREATE DATABASE database1;一、创建登录用户 方式1:SQL命令 命令格式:CREATE LOGIN [用户名] WITH PASSWORD ‘密码’; 例如,创…

BigDecimal 为什么可以不丢失精度?

本文已收录至Java面试网站:https://topjavaer.cn 大家好,今天咱们来聊聊 Java 中的 BigDecimal。在金融领域,数据的精确性相当重要,一个小数点的误差可能就意味着几百万甚至几千万的损失。而 BigDecimal 就是专门用来解决这种高精…

docker启动elasticsearch,挂载文件报错:Device or resource busy

本人使用的是elasticsearch 8.17.0,不过通过看帖子发现这个问题很早之前就有了,并且到现在官方也没有很好的解决。 原始错误是在安全自动配置期间引发的,配置文件里显示的启用安全配置xpack.security.enabled: true可以跳过自动配置&#xf…

事故02分析报告:慢查询+逻辑耦合导致订单无法生成

一、事故背景与现象 时间范围 2022年2月3日 18:11~18:43(历时32分钟) 受影响系统 系统名称角色影响范围dc3订单数据库主库订单生成、事务回滚dc4订单数据库从库数据同步、容灾切换 业务影响 核心业务:手机点餐、C扫B支付订单无法推送至…