rttlua:部署

rttlua:部署

https://www.orocos.org/wiki/orocos/toolchain/luacookbook

https://github.com/guihomework/orocos_tutorials/wiki#spoiler1(重点推荐)

https://github.com/jhu-lcsr/rtt_ros_examples(需要改写)

其中example.launch

<launch>
  <arg name="LUA" default="true"/>

  <include if="$(arg LUA)" file="$(find rtt_ros)/launch/rttlua.launch">
    <arg name="RTTLUA_ARGS" value="$(find rtt_ros_integration_example)/example.lua"/>
  </include>

  <include unless="$(arg LUA)" file="$(find rtt_ros)/launch/deployer.launch">
    <arg name="DEPLOYER_ARGS" value="-s $(find rtt_ros_integration_example)/example.ops"/>
    <arg name="LOG_LEVEL" value="debug"/>
    <arg name="DEBUG" value="false"/>
  </include>

  <node name="update_monitor" pkg="rtt_ros_integration_example" type="update_monitor.py" output="screen"/>
</launch>

其中example.lua改写如下:

--[ Set log-level ]--

require "rttlib"
require "rttros"
rtt.setLogLevel("Warning")

--[ get convenience objects ]--
gs = gs or rtt.provides()
tc = tc or rtt.getTC()
depl = depl or tc:getPeer("Deployer")
depl:import("rtt_rosnode")
depl:import("rtt_roscomm")

--[ required imports ]--
depl:import("rtt_ros")
depl:import("rtt_ros")
ros = gs:provides("ros")
ros:import("rtt_ros_integration_example")

--[ Load a HelloRobot component ]--
depl:loadComponent("hello_robot","HelloRobot")
hr = depl:getPeer("hello_robot")

--[ Give it a periodic activity ]--
depl:setActivity(
  hr:getName(),
  0.0,
  depl:getAttribute("LowestPriority"):get(),
  rtt.globals.ORO_SCHED_OTHER)

--[ Create connections to some ros topics ]--
depl:stream(hr:getName()..".float_out", ros:topic("float_out"))
depl:stream(hr:getName()..".float_in", ros:topic("float_in"))
depl:stream(hr:getName()..".string_out", ros:topic("string_out"))
depl:stream(hr:getName()..".string_in", ros:topic("string_in"))

--[ Connect the component to some ros topics ]--
hr:loadService("rosservice")
hr:provides("rosservice"):connect("increment", "/increment", "std_srvs/Empty")
hr:provides("rosservice"):connect( "updated", "/updated", "std_srvs/Empty")

--[ Configure and start the component ]--
hr:configure()
hr:start()



http://www.lua.org/pil/

http://www.lua.org/manual/5.1/

http://thomaslauer.com/download/luarefv51.pdf

RT-Thread的主要开发成员来自中国,大家主要利用业余时间进行RT-Thread的开发和 维护,同时也接受开发者,爱好者,以及专业嵌入式领域公司向RT-Thread捐赠代码。在上 海也有一家专业提供RT-Thread技术服务的服务公司: 上海睿赛德电子科技有限公司 。 RT-Thread以一年为开发、发布周期。RT-Thread的每一个版本都会设定一个目标,而 后的一年开发周期以这个为目标进行开发、演化改进,同时按照每个季度一个测试版本的形 式进行推进。发布的版本包括两种: • 一种是正式版本(或者说稳定版本,维护版本),例如2.0.x正式版本,它是2.0.0正式 版本的bug fix版本。在功能上并不添加新的功能,而着重于对已有bug的修正; • 一种是测试版本(或者说开发版本),例如2.1.0 beta版本。它是以一年期设定目标而 演进,完善的版本,相对来说不那么稳定,但具备新的功能,对新的路线的探索; 每个开发版本会提前设定出开发目标,一般是通过邮件、论坛进行沟通后进行;同时每 年在中国也会有一到两次的开发者会议,会议上会讨论新版本的目标,或者大版本新的方 向。 在开发活动上,RT-Thread相类似的按照上面的软件体系结构划分成三个部分: • 内核(kernel),这个是RT-Thread的核心,也是根本; • 组件(component),基于核心之上,把一些功能模块划分成独立的一个个组件模 块,做到组件与组件之间的低耦合,组件内部的高内聚; • 分支(porting),这个是RT-Thread支持的一个个芯片移植,外设驱动等; 这三部分每部分都有维护人,维护人应切实地保证相关部分的正常运行。当前的 RT-Thread开发版本放在github.com 上,欢迎每个开发者、爱好者向RT-Thread提交pull request。每个组件、分支的维护人在收到pull request后,会决定是否合并到开发分支中。 开发者、爱好者提交的代码应该符合RT-Thread的编程规范,并尽少地影响到其他组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值