Skip to content

Commit e68bd81

Browse files
tkimura4mitsudome-rYamatoAndokenji-miyakewep21
authored
feat: add autoware_web_controller packages (autowarefoundation#97)
* release v0.4.0 * add control mode status (autowarefoundation#709) Signed-off-by: Yamato Ando <yamato.ando@gmail.com> * Change localization diag namespace (autowarefoundation#718) * Change default value of output_diagnostics_topic Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Remove localization_diagnostic.js from web_controller Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Integrate localization diag to diagnostic_aggregator Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Delete old and unused publisher Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * remove ROS1 packages temporarily Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * add sample ros2 packages Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * remove ROS1 packages Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * Revert "remove ROS1 packages temporarily" This reverts commit 741214959ba02ec8650c62538581d9df9116eef8. Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * add COLCON_IGNORE to ros1 packages Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * Port web controller (autowarefoundation#235) * [autoware_web_controller] intial port to ROS2 Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * add missing dependencies Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * remove dependency to ament_cmake_auto and depend on ament_cmake Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * [autoware_web_controller] add messages to exec_depend Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * [autoware_web_controller] moved files in www into autoware_web_controller directory Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * Ros2 v0.8.0 engage (autowarefoundation#342) * [autoware_vehicle_msgs]: Add engage message Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * [as]: Update message Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * [awapi_awiv_adapter]: Update message Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * [web_controller]: Update message Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * [vehicle_cmd_gate]: Update message Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * [autoware_state_monitor]: Update message Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * [autoware_control_msgs]: Remove EngageMode message Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * [simple_planning_simulator]: Update message Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * Fix autoware web controller (autowarefoundation#389) * fix message types Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * fix subscriber for autoware_engage Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * fix vehicle_engage.js Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * fix function syntax for vehicle_engage.js Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * add use_sim-time option (autowarefoundation#454) * Format launch files (autowarefoundation#1219) Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Remove use_sim_time for set_parameter (autowarefoundation#1260) Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * Add pre-commit (autowarefoundation#1560) * add pre-commit * add pre-commit-config * add additional settings for private repository * use default pre-commit-config * update pre-commit setting * Ignore whitespace for line breaks in markdown * Update .github/workflows/pre-commit.yml Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * exclude svg * remove pretty-format-json * add double-quote-string-fixer * consider COLCON_IGNORE file when seaching modified package * format file * pre-commit fixes * Update pre-commit.yml * Update .pre-commit-config.yaml Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> Co-authored-by: pre-commit <pre-commit@example.com> Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com> * Add markdownlint and prettier (autowarefoundation#1661) * Add markdownlint and prettier Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Ignore .param.yaml Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Improve avoidance algorithm in behavior_path_planner (autowarefoundation#2127) * add debug comment Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * use same clock and logger Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * remove Frenet struct Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * change param Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * Correspond exactly to the modified and raw shift points. Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * separate structure file Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix return shift calculation Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * add index info on path marker Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update returnSHift func Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * update param Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * update findNewShiftPoiint logic by using linear shifter Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * fix return distance calculation Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * fix return shift for steep shape Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * fix for return shift after approval Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * re-fix for return shift after approval Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * re-re-fix for return shift after approval Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * add same object_id shift for parent_ids even if it is not overwrapped. Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * fix clock for approval_handler Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix bug: extra_return_shift is not registered Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update - update logic of unique check for registered shift - update addReturnShift func to support for opposite obstacle case - disable trimSmallShift Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * use relative shift for avoid start point Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update path_shifter: use end_point shift for relative shift calculation so that the desired shift length is set at shift_point's end_idx (before, it was set at the end point of the path) Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update: select existing shift point that will be removed before adding a new one Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix path_shifter: current_shift for linear shift Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update - add ignore over-jerk shift function - improve debug print Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update - add control flag for debug print - add control flag for debug marker Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * TMP: add sparse resampling to reduce computational cost Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * update parameter: min_nominal_avoidance_speed 3.0 -> 5.0 Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * cosmetic change - move some debug functions to debug.cpp - remove temporal debug comment - remove unused params - parametrize some values - align function decleration order Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * add empty avoidance design Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * applly format Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * fix typo Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * fix design.md directory Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * change variable nale sudden, tight -> sharp Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * remove unused param Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix default value Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * add design Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * move some functions to util Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * fix design typo Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * remove temporal mutable & adjust function name Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * parametrize some hard-coded params Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * follow ament_uncrustify & cpplint Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * fix parent_id inheritance bug Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * back to experiment config Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * update trim filter: trimSharpReturn Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * add lost-detection compensator Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * resolve todo for empty path Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * change param: set false for debug publisher Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * update debug comment Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * remove unused debug print Signed-off-by: TakaHoribe <horibe.takamasa@gmail.com> * update default param Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * use closest footpoint from ego for avoidance point Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * cosmetic change Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix format Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix typo Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * move lateral and longitudinal distance calculation to util Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * simplify mergeShift function Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix format Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix typo Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix readme style Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * revert unexpected changes Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * - remove unused comment - translate to english Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * apply format Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * fix typo Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com> * Fix/update velocity limit topic name (autowarefoundation#2223) * Add COLCON_IGNORE (autowarefoundation#500) Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * autoware_web_controller port to .auto (autowarefoundation#522) * Porting to .auto * Modified web url * [autowere_web_controller/autoware_state_monitor/emergency_handler]fix some packages (autowarefoundation#603) * fix vehicle_engage.js * fix autoware_state_monitor param * fix emergency_handler * oh * update autoware_state.js * [autoware_web_controller]add readme (autowarefoundation#611) * add png * add readme * Update common/util/web_controller/autoware_web_controller/README.md Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * apply format * fix type Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * fix depend * ci(pre-commit): autofix Co-authored-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> Co-authored-by: YamatoAndo <yamato.ando@gmail.com> Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com> Co-authored-by: Ryohsuke Mitsudome <43976834+mitsudome-r@users.noreply.github.com> Co-authored-by: Daisuke Nishimatsu <42202095+wep21@users.noreply.github.com> Co-authored-by: Keisuke Shima <19993104+KeisukeShima@users.noreply.github.com> Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> Co-authored-by: pre-commit <pre-commit@example.com> Co-authored-by: Takamasa Horibe <horibe.takamasa@gmail.com> Co-authored-by: Satoshi OTA <44889564+satoshi-ota@users.noreply.github.com> Co-authored-by: Yohei Mishina <66298900+YoheiMishina@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Takeshi Miura <57553950+1222-takeshi@users.noreply.github.com>
1 parent bd4111f commit e68bd81

15 files changed

+878
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
project(autoware_web_controller)
3+
4+
find_package(ament_cmake REQUIRED)
5+
6+
install(DIRECTORY
7+
launch
8+
www
9+
DESTINATION share/${PROJECT_NAME}/
10+
)
11+
12+
ament_package(
13+
)
+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# autoware_web_controller
2+
3+
## Purpose
4+
5+
This packages is for visualizing the status of Autoware and sending topics for Autoware from a web page.
6+
7+
## Inputs / Outputs
8+
9+
### Input
10+
11+
| Name | Type | Description |
12+
| -------------------------------------------------- | ----------------------------------------------- | ---------------------------- |
13+
| `/control/current_gate_mode` | `autoware_control_msgs::msg::GateMode` | Gate mode (AUTO or EXTERNAL) |
14+
| `/autoware/state` | `autoware_auto_system_msgs::msg::AutowareState` | State of Autoware |
15+
| `/autoware/engage` | `autoware_auto_system_msgs::msg::Engage` | Engage signal for Autoware |
16+
| `/vehicle/engage` | `autoware_auto_system_msgs::msg::Engage` | Engage signal for a vehicle |
17+
| `/planning/scenario_planning/max_velocity_default` | `autoware_planning_msgs::msg::VelocityLimit` | Max velocity of Autoware |
18+
19+
### Output
20+
21+
| Name | Type | Description |
22+
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------- |
23+
| `/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/path_change_approval` | `autoware_planning_msgs::msg::Approval` | Send an approval signal for path change request such as lane change or obstacle avoidance |
24+
| `/autoware/engage` | `autoware_auto_system_msgs::msg::Engage` | Send an engage signal for Autoware |
25+
| `/vehicle/engage` | `autoware_auto_system_msgs::msg::Engage` | Send an engage signal for a vehicle |
26+
| `/planning/scenario_planning/max_velocity_default` | `autoware_planning_msgs::msg::VelocityLimit` | Set a max velocity of Autoware |
27+
28+
## Parameter
29+
30+
### Core Parameters
31+
32+
None
33+
34+
## Assumptions / Known limits
35+
36+
TBD.
37+
38+
## Usage
39+
40+
1. Access to <http://localhost:8085/autoware_web_controller> after launching Autoware.
41+
![select_panel](./images/web_controller.png)
42+
2. Check the status of Autoware or send topics by the buttons.
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<launch>
3+
<!-- Web Controller -->
4+
5+
<executable cmd="python3 -m http.server 8085" cwd="$(find-pkg-share autoware_web_controller)/www" name="web_server"/>
6+
<node pkg="rosbridge_server" exec="rosbridge_websocket" name="rosbridge_server_node">
7+
</node>
8+
</launch>
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0"?>
2+
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
3+
<package format="3">
4+
<name>autoware_web_controller</name>
5+
<version>0.1.0</version>
6+
<description>The autoware_web_controller package</description>
7+
8+
<maintainer email="yukihiro.saito@tier4.jp">Yukihiro Saito</maintainer>
9+
<license>Apache License 2.0</license>
10+
11+
<buildtool_depend>ament_cmake</buildtool_depend>
12+
13+
<exec_depend>autoware_auto_system_msgs</exec_depend>
14+
<exec_depend>autoware_control_msgs</exec_depend>
15+
<exec_depend>autoware_planning_msgs</exec_depend>
16+
<exec_depend>rosbridge_server</exec_depend>
17+
<exec_depend>std_msgs</exec_depend>
18+
19+
<export>
20+
<build_type>ament_cmake</build_type>
21+
</export>
22+
</package>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
.menu {
2+
position: absolute;
3+
float: left;
4+
left: 3%;
5+
top: 50pt;
6+
}
7+
8+
.time {
9+
font-size: small;
10+
}
11+
12+
.contents {
13+
position: absolute;
14+
left: 200pt;
15+
right: 10%;
16+
float: right;
17+
}
18+
19+
* {
20+
margin: 0;
21+
padding: 0;
22+
}
23+
24+
#wrapper {
25+
width: 80%;
26+
margin: 0 auto 0 20px;
27+
}
28+
29+
h1 {
30+
height: auto;
31+
margin: 40px 0 10px 20px;
32+
padding: 0;
33+
color: #444444;
34+
font-size: 30px;
35+
font-weight: bold;
36+
border-top: 0;
37+
line-height: 1.5;
38+
}
39+
40+
h2 {
41+
margin: 60px 0 10px 0;
42+
padding: 0 0 0 15px;
43+
font-size: 26px;
44+
font-weight: bold;
45+
border-width: 0 0 0 4px;
46+
border-style: solid;
47+
border-color: #0f5296;
48+
}
49+
50+
h3 {
51+
padding: 20px 0 5px 0px;
52+
font-size: 22px;
53+
font-weight: bold;
54+
border-width: 0 0 1px 0;
55+
border-style: solid;
56+
border-color: #e6e6e6;
57+
}
58+
59+
form {
60+
display: inline-block;
61+
margin: 0 5px;
62+
}
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3+
<head>
4+
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
5+
<title>Autoware WEB Controller</title>
6+
<link rel="shortcut icon" href="icon/autoware.ico" />
7+
<link rel="stylesheet" href="css/autoware_web_controller_style.css" type="text/css" />
8+
<script src="https://static.robotwebtools.org/EventEmitter2/current/eventemitter2.min.js"></script>
9+
<script src="https://static.robotwebtools.org/roslibjs/current/roslib.min.js"></script>
10+
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
11+
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
12+
<script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
13+
<script type="text/javascript" src="js/autoware_state.js"></script>
14+
<script type="text/javascript" src="js/autoware_engage.js"></script>
15+
<script type="text/javascript" src="js/vehicle_engage.js"></script>
16+
<script type="text/javascript" src="js/velocity_limit.js"></script>
17+
<script type="text/javascript" src="js/path_change_approval.js"></script>
18+
<style>
19+
.ui-menu {
20+
min-width: 90px;
21+
max-width: 150px;
22+
}
23+
24+
.ui-menu .ui-menu-item {
25+
margin: 0;
26+
padding: 0;
27+
width: 100%;
28+
}
29+
</style>
30+
</head>
31+
32+
<body>
33+
<!-- menu -->
34+
<ul id="menu" class="menu">
35+
<li id="menu_autoware"><a href="#autoware">Autoware</a></li>
36+
<li id="menu_vehicle"><a href="#vehicle">Vehicle</a></li>
37+
<li>
38+
<a href="https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto" target="_blank"
39+
>Github</a
40+
>
41+
</li>
42+
<li><a href="https://webviz.io/app/" target="_blank">Webviz</a></li>
43+
<li class="ui-state-disabled"><a href="#">Amesville</a></li>
44+
</ul>
45+
<div class="contents">
46+
<h1>Status: <label id="state">Disconnect</label></h1>
47+
<div id="autoware">
48+
<h2>Autoware</h2>
49+
50+
<h3>Autoware State : <span id="autoware_state"> - </span></h3>
51+
<textarea readonly id="autoware_state_msg" rows="20" , cols="200"></textarea>
52+
53+
<h3>Autoware Engage :<span id="autoware_engage_info"> - </span></h3>
54+
<form action="javascript:AutowareEngagePublisher.send('Engage');" id="ui">
55+
<input type="submit" value="Engage" id="btn" /><br />
56+
</form>
57+
<form action="javascript:AutowareEngagePublisher.send('Disengage');" id="ui">
58+
<input type="submit" value="Disengage" id="btn" /><br />
59+
</form>
60+
<div>
61+
<span>Status:</span>
62+
<span id="autoware_engage_status"> - </span>
63+
</div>
64+
<h3>Vehicle Engage</h3>
65+
<form action="javascript:VehicleEngagePublisher.send('Engage');" id="ui">
66+
<input type="submit" value="Engage" id="btn" /><br />
67+
</form>
68+
<form action="javascript:VehicleEngagePublisher.send('Disengage');" id="ui">
69+
<input type="submit" value="Disengage" id="btn" /><br />
70+
</form>
71+
<div>
72+
<span>Status:</span>
73+
<span id="vehicle_engage_status"> - </span>
74+
</div>
75+
<div>
76+
<span>Control Mode:</span>
77+
<span id="vehicle_control_mode_status"> - </span>
78+
</div>
79+
<h3>Velocity Limit : <span id="velocity_limit_info"> - </span></h3>
80+
<form action="javascript:VelocityLimitPublisher.send();" id="ui" name="velocity_limit_form">
81+
<input type="text" name="velocity_limit" />
82+
<input type="submit" value="Send" id="btn" /><br />
83+
</form>
84+
<div>
85+
<span>Status:</span>
86+
<span id="velocity_limit_status"> - </span>
87+
<span>km/h</span>
88+
</div>
89+
<h3>Path Change Approval : <span id="path_change_approval_info"> - </span></h3>
90+
<form action="javascript:PathChangeApprovalPublisher.send();" id="ui">
91+
<input type="submit" value="Approve" id="btn" /><br />
92+
</form>
93+
<div>
94+
<span>Status:</span>
95+
<span id="path_change_approval_status"> - </span>
96+
</div>
97+
</div>
98+
<div id="vehicle">
99+
<h2>Vehicle</h2>
100+
<hr size="2" color="#333333" width="100%" />
101+
</div>
102+
</div>
103+
</body>
104+
<script type="text/javascript" src="js/menu.js"></script>
105+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
if (!AutowareEngagePublisher) {
2+
var AutowareEngagePublisher = {
3+
ros: null,
4+
name: "",
5+
init: function () {
6+
this.ros = new ROSLIB.Ros();
7+
this.ros.on("error", function (error) {
8+
document.getElementById("autoware_engage_info").innerHTML = "Error";
9+
});
10+
this.ros.on("connection", function (error) {
11+
document.getElementById("autoware_engage_info").innerHTML = "Connected";
12+
});
13+
this.ros.on("close", function (error) {
14+
document.getElementById("autoware_engage_info").innerHTML = "Closed";
15+
});
16+
this.ros.connect("ws://" + location.hostname + ":9090");
17+
},
18+
send: function (value) {
19+
var pub = new ROSLIB.Topic({
20+
ros: this.ros,
21+
name: "/autoware/engage",
22+
messageType: "autoware_auto_vehicle_msgs/Engage",
23+
latch: "true",
24+
});
25+
26+
if (value == "Engage") {
27+
var str = new ROSLIB.Message({
28+
stamp: {
29+
sec: 0,
30+
nanosec: 0,
31+
},
32+
engage: true,
33+
});
34+
pub.publish(str);
35+
} else {
36+
var str = new ROSLIB.Message({
37+
stamp: {
38+
sec: 0,
39+
nanosec: 0,
40+
},
41+
engage: false,
42+
});
43+
pub.publish(str);
44+
}
45+
},
46+
};
47+
AutowareEngagePublisher.init();
48+
49+
window.onload = function () {};
50+
window.onunload = function () {
51+
AutowareEngagePublisher.ros.close();
52+
};
53+
}
54+
if (!AutowareEngageStatusSubscriber) {
55+
var AutowareEngageStatusSubscriber = {
56+
ros: null,
57+
name: "",
58+
init: function () {
59+
this.ros = new ROSLIB.Ros();
60+
this.ros.on("error", function (error) {
61+
document.getElementById("state").innerHTML = "Error";
62+
});
63+
this.ros.on("connection", function (error) {
64+
document.getElementById("state").innerHTML = "Connect";
65+
});
66+
this.ros.on("close", function (error) {
67+
document.getElementById("state").innerHTML = "Close";
68+
});
69+
this.ros.connect("ws://" + location.hostname + ":9090");
70+
71+
var sub = new ROSLIB.Topic({
72+
ros: this.ros,
73+
name: "/autoware/engage",
74+
messageType: "autoware_auto_vehicle_msgs/Engage",
75+
});
76+
sub.subscribe(function (message) {
77+
const div = document.getElementById("autoware_engage_status");
78+
if (div.hasChildNodes()) {
79+
div.removeChild(div.firstChild);
80+
}
81+
var res = message.engage;
82+
var el = document.createElement("span");
83+
el.innerHTML = res;
84+
document.getElementById("autoware_engage_status").appendChild(el);
85+
});
86+
},
87+
};
88+
AutowareEngageStatusSubscriber.init();
89+
90+
window.onload = function () {};
91+
window.onunload = function () {
92+
AutowareEngageStatusSubscriber.ros.close();
93+
};
94+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
if (!AutowareStateSubscriber) {
2+
var AutowareStateSubscriber = {
3+
ros: null,
4+
name: "",
5+
init: function () {
6+
this.ros = new ROSLIB.Ros();
7+
this.ros.connect("ws://" + location.hostname + ":9090");
8+
9+
var sub = new ROSLIB.Topic({
10+
ros: this.ros,
11+
name: "/autoware/state",
12+
messageType: "autoware_auto_system_msgs/AutowareState",
13+
});
14+
15+
sub.subscribe(function (message) {
16+
var res = "";
17+
if (message.state == 1) {
18+
res = "INITIALIZING";
19+
} else if (message.state == 2) {
20+
res = "WAITING_FOR_ROUTE";
21+
} else if (message.state == 3) {
22+
res = "PLANNING";
23+
} else if (message.state == 4) {
24+
res = "WAITING_FOR_ENGAGE";
25+
} else if (message.state == 5) {
26+
res = "DRIVING";
27+
} else if (message.state == 6) {
28+
res = "ARRIVED_GOAL";
29+
} else if (message.state == 7) {
30+
res = "FINALIZING";
31+
} else {
32+
res = "Undefined";
33+
}
34+
35+
document.getElementById("autoware_state").innerHTML = res;
36+
});
37+
},
38+
};
39+
AutowareStateSubscriber.init();
40+
41+
window.onload = function () {};
42+
window.onunload = function () {
43+
AutowareStateSubscriber.ros.close();
44+
};
45+
}

0 commit comments

Comments
 (0)