ROS Clock 各版本支持时间倒计时工具 转

该网页展示了一个ROS(Robot Operating System)不同版本的时间线,包括它们的起始和结束日期。通过JavaScript更新,页面实时显示每个版本的状态,如'future', 'active', 或 'expired',并计算剩余或距发布的时间。这对于跟踪ROS版本的生命周期和支持状态非常有用。

网址:dlu.github.io/ros_clock/index.html

"noetic": {"start": "May 23, 2020", "end": "May 23, 2025"},

"humble": {"start": "May 23, 2022", "end": "May 23, 2027"},

效果如下:


var timing = {
    //"boxturtle":   {"start": "March 2, 2010", "end": ""},
    //"cturtle":     {"start": "August 2, 2010", "end": ""},
   // "diamondback": {"start": "March 2, 2011", "end": ""},
    //"electric":    {"start": "August 30, 2011", "end": ""},
    "fuerte":      {"start": "April 23, 2012",   "end": "Sept 4, 2013"},
    "groovy":      {"start": "Dec 31, 2012",     "end": "July 1, 2014"},
    "hydro":       {"start": "Sept 4, 2013",     "end": "May 1, 2015"},
    "indigo":      {"start": "July 22, 2014",    "end": "April 1, 2019"},
    "jade":        {"start": "May 23, 2015",     "end": "May 1, 2017"},
    "kinetic":     {"start": "May 23, 2016",     "end": "April 1, 2021"},
    "lunar":       {"start": "May 23, 2017",     "end": "May 23, 2019"},
    "melodic":     {"start": "May 23, 2018",     "end": "May 23, 2023"},
    "noetic":      {"start": "May 23, 2020",     "end": "May 23, 2025"},
    "ardent":      {"start": "Dec 8, 2017",      "end": "Dec 1, 2018"},
    "bouncy":      {"start": "July 2, 2018",     "end": "July 1, 2019"},
    "crystal":     {"start": "Dec 14, 2018",     "end": "Dec 1, 2019"},
    "dashing":     {"start": "May 31, 2019",     "end": "May 23, 2021"},
    "eloquent":    {"start": "November 22, 2019","end": "November 1, 2020"},
    "foxy":        {"start": "June 5, 2020",     "end": "May 23, 2023"},
    "galactic":    {"start": "May 23, 2021",     "end": "November 23, 2022"},
    "humble":      {"start": "May 23, 2022",     "end": "May 23, 2027"},
}

 

<html>
<head>
    <meta charset="utf-8" />
    <title>ROS Clock</title>
    <link href="https://fonts.googleapis.com/css?family=Press+Start+2P&display=swap" rel="stylesheet">
    <link href="terminal.css" rel="stylesheet">
    <script src="info.js"></script>
    <script src="countdown.js"></script>
</head>
<body>
    <h1>ROS Clock</h1>
    <div id="contents"></div>
    <script>
    function update()
    {
      updateDict();

      var contents = document.getElementById("contents");
      contents.innerHTML = '';

      for (key in timing)
      {
        var entry = timing[key];

        var row = document.createElement('div');
        row.setAttribute('class', "row " + entry["status"]);
        contents.appendChild(row);

        var head = document.createElement('span');
        head.setAttribute('class', 'distro')
        head.appendChild(document.createTextNode(key));
        row.appendChild(head);

        row.appendChild(document.createTextNode(entry["status"]));

        if (entry["status"] != "expired")
        {
            row.appendChild(document.createElement('br'));

            var countdown = document.createElement('span');
            countdown.setAttribute('class', 'countdown')
            countdown.appendChild(document.createTextNode('Time Remaining: '));
            countdown.appendChild(document.createTextNode(deltaToString(entry["delta"])));
            row.appendChild(countdown);

            if (entry["status"] == "future")
            {
                row.appendChild(document.createElement('br'));

                var countdown = document.createElement('span');
                countdown.setAttribute('class', 'countdown')
                countdown.appendChild(document.createTextNode('Time to Release: '));
                countdown.appendChild(document.createTextNode(deltaToString(entry["release"])));
                row.appendChild(countdown);
            }
        }
      }
    }

    setInterval(update, 1000);
    update();
    </script>
</body>
</html>

 

### 如何在ROS控制台中更改系统时间或仿真时间设置 在 ROS 中,可以通过多种方式调整系统时间和仿真时间的设置。以下是具体的方法: #### 修改系统时间 如果需要直接修改系统的实际时间,在 ROS 控制台中无法完成此操作,因为这涉及到操作系统级别的权限管理。然而,可以借助 Linux 命令行工具实现这一目标。 通过 `date` 命令可以直接修改系统时间: ```bash sudo date -s "YYYY-MM-DD HH:MM:SS" ``` 上述命令会将系统时间更改为指定的时间戳[^3]。 需要注意的是,这种方式仅适用于具有管理员权限的操作场景下运行。 #### 设置仿真时间 (Simulation Time) 对于机器人模拟器(如 Gazebo),通常使用仿真时间为节点提供时间参考。要启用仿真时间支持,需执行以下步骤: 1. **发布 `/clock` 主题** 在仿真环境中,确保有节点负责发布 `/clock` 主题。Gazebo 默认会在启动时自动发布该主题。 2. **配置参数服务器中的 `use_sim_time` 参数** 所有的 ROS 节点都应订阅 `/clock` 并依据其更新内部计时逻辑。为此,必须提前设置全局参数 `use_sim_time` 为 true: ```bash rosparam set /use_sim_time true ``` 3. **验证仿真时间生效** 启动所有依赖于时间的功能模块之后,可通过如下指令确认当前使用的是否为仿真时间: ```bash rostopic echo /clock ``` 如果输出显示递增的时间戳,则表明仿真时间已成功应用[^4]。 #### 结合 runtime.ini 文件进行多机通信下的时间同步 当涉及跨网络的分布式计算环境时,为了保持各设备间的一致性,可能还需要额外关注主机名解析以及主服务 URI 的定义等问题。例如按照所提供的 runtime.ini 配置指南[^2],合理分配每台计算机上的 IP 地址和名称映射关系有助于减少因不同步引发的数据交互错误风险。 ```python import rospy rospy.set_param('/use_sim_time', True) # Python API 方式设定 use_sim_time 参数 ``` 以上即是在 ROS 系统里针对不同类型需求所采取的不同策略介绍。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值