-
Notifications
You must be signed in to change notification settings - Fork 389
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Do not remove any ROS 1 functionality
- Loading branch information
Showing
14 changed files
with
654 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8" /> | ||
<script src="https://static.robotwebtools.org/EventEmitter2/current/eventemitter2.min.js"></script> | ||
<script src="../build/roslib.js"></script> | ||
|
||
<script> | ||
// Connecting to ROS | ||
// ----------------- | ||
var ros = new ROSLIB.Ros({ | ||
url : 'ws://localhost:9090' | ||
}); | ||
|
||
// If there is an error on the backend, an 'error' emit will be emitted. | ||
ros.on('error', function(error) { | ||
document.getElementById('connecting').style.display = 'none'; | ||
document.getElementById('connected').style.display = 'none'; | ||
document.getElementById('closed').style.display = 'none'; | ||
document.getElementById('error').style.display = 'inline'; | ||
console.log(error); | ||
}); | ||
|
||
// Find out exactly when we made a connection. | ||
ros.on('connection', function() { | ||
console.log('Connection made!'); | ||
document.getElementById('connecting').style.display = 'none'; | ||
document.getElementById('error').style.display = 'none'; | ||
document.getElementById('closed').style.display = 'none'; | ||
document.getElementById('connected').style.display = 'inline'; | ||
}); | ||
|
||
ros.on('close', function() { | ||
console.log('Connection closed.'); | ||
document.getElementById('connecting').style.display = 'none'; | ||
document.getElementById('connected').style.display = 'none'; | ||
document.getElementById('closed').style.display = 'inline'; | ||
}); | ||
|
||
// The ActionClient | ||
// ---------------- | ||
|
||
var fibonacciClient = new ROSLIB.ActionClient({ | ||
ros : ros, | ||
serverName : '/fibonacci', | ||
actionName : 'actionlib_tutorials/FibonacciAction' | ||
}); | ||
|
||
// Create a goal. | ||
var goal = new ROSLIB.Goal({ | ||
actionClient : fibonacciClient, | ||
goalMessage : { | ||
order : 7 | ||
} | ||
}); | ||
|
||
// Print out their output into the terminal. | ||
goal.on('feedback', function(feedback) { | ||
console.log('Feedback: ' + feedback.sequence); | ||
}); | ||
goal.on('result', function(result) { | ||
console.log('Final Result: ' + result.sequence); | ||
}); | ||
|
||
// Send the goal to the action server. | ||
goal.send(); | ||
</script> | ||
</head> | ||
|
||
<body> | ||
<h1>Fibonacci ActionClient Example</h1> | ||
<p>Run the following commands in the terminal then refresh this page. Check the JavaScript | ||
console for the output.</p> | ||
<ol> | ||
<li><tt>roscore</tt></li> | ||
<li><tt>rosrun actionlib_tutorials fibonacci_server</tt></li> | ||
<li><tt>roslaunch rosbridge_server rosbridge_websocket.launch</tt></li> | ||
</ol> | ||
<div id="statusIndicator"> | ||
<p id="connecting"> | ||
Connecting to rosbridge... | ||
</p> | ||
<p id="connected" style="color:#00D600; display:none"> | ||
Connected | ||
</p> | ||
<p id="error" style="color:#FF0000; display:none"> | ||
Error in the backend! | ||
</p> | ||
<p id="closed" style="display:none"> | ||
Connection closed. | ||
</p> | ||
</div> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8" /> | ||
<script src="https://static.robotwebtools.org/EventEmitter2/current/eventemitter2.min.js"></script> | ||
<script src="../build/roslib.js"></script> | ||
|
||
<script> | ||
// Connecting to ROS | ||
// ----------------- | ||
var ros = new ROSLIB.Ros({ | ||
url : 'ws://localhost:9090' | ||
}); | ||
|
||
// If there is an error on the backend, an 'error' emit will be emitted. | ||
ros.on('error', function(error) { | ||
console.log(error); | ||
}); | ||
|
||
// The ActionServer | ||
// ---------------- | ||
|
||
this.fibonacciServer = new ROSLIB.SimpleActionServer({ | ||
ros : ros, | ||
serverName : '/fibonacci', | ||
actionName : 'actionlib_tutorials/FibonacciAction' | ||
}); | ||
|
||
this.canceled = false; | ||
var that=this; | ||
|
||
//handle fibonacci action request. | ||
this.fibonacciServer.on('goal', function(goalMessage) { | ||
console.log(goalMessage); | ||
fibonacciSequence = []; | ||
fibonacciSequence.push(0); | ||
fibonacciSequence.push(1); | ||
|
||
for (var i = 1; i < goalMessage.order; i++ ) { | ||
fibonacciSequence.push( fibonacciSequence[i] + fibonacciSequence[i-1] ); | ||
|
||
if (that.canceled === true ) { | ||
console.log("Action server preempted"); | ||
|
||
that.fibonacciServer.setPreempted(); | ||
} | ||
console.log(fibonacciSequence); | ||
//send feedback | ||
var feedback = { sequence: fibonacciSequence }; | ||
that.fibonacciServer.sendFeedback(fibonacciSequence); | ||
} | ||
|
||
//send result | ||
var result = { sequence: fibonacciSequence}; | ||
that.fibonacciServer.setSucceeded(result); | ||
}); | ||
|
||
this.fibonacciServer.on('cancel', function(goalMessage){ | ||
that.canceled = true; | ||
}); | ||
</script> | ||
</head> | ||
|
||
<body> | ||
<h1>Fibonacci ActionClient Example</h1> | ||
<p>Run the following commands in the terminal then refresh this page. Check the JavaScript | ||
console for the output.</p> | ||
<ol> | ||
<li><tt>roscore</tt></li> | ||
<li><tt>roslaunch rosbridge_server rosbridge_websocket.launch</tt></li> | ||
<li><tt>refresh this page</tt></li> | ||
<li><tt>rosrun actionlib_tutorials fibonacci_client</tt></li> | ||
</ol> | ||
</body> | ||
</html> |
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8" /> | ||
<script src="https://static.robotwebtools.org/EventEmitter2/current/eventemitter2.min.js"></script> | ||
<script src="../build/roslib.js"></script> | ||
|
||
<script> | ||
// Connecting to ROS | ||
// ----------------- | ||
var ros = new ROSLIB.Ros(); | ||
|
||
// If there is an error on the backend, an 'error' emit will be emitted. | ||
ros.on('error', function(error) { | ||
document.getElementById('connecting').style.display = 'none'; | ||
document.getElementById('connected').style.display = 'none'; | ||
document.getElementById('closed').style.display = 'none'; | ||
document.getElementById('error').style.display = 'inline'; | ||
console.log(error); | ||
}); | ||
|
||
// Find out exactly when we made a connection. | ||
ros.on('connection', function() { | ||
console.log('Connection made!'); | ||
document.getElementById('connecting').style.display = 'none'; | ||
document.getElementById('error').style.display = 'none'; | ||
document.getElementById('closed').style.display = 'none'; | ||
document.getElementById('connected').style.display = 'inline'; | ||
}); | ||
|
||
ros.on('close', function() { | ||
console.log('Connection closed.'); | ||
document.getElementById('connecting').style.display = 'none'; | ||
document.getElementById('connected').style.display = 'none'; | ||
document.getElementById('closed').style.display = 'inline'; | ||
}); | ||
|
||
// Create a connection to the rosbridge WebSocket server. | ||
ros.connect('ws://localhost:9090'); | ||
|
||
// Publishing a Topic | ||
// ------------------ | ||
|
||
// First, we create a Topic object with details of the topic's name and message type. | ||
var cmdVel = new ROSLIB.Topic({ | ||
ros : ros, | ||
name : '/cmd_vel', | ||
messageType : 'geometry_msgs/Twist' | ||
}); | ||
|
||
// Then we create the payload to be published. The object we pass in to ros.Message matches the | ||
// fields defined in the geometry_msgs/Twist.msg definition. | ||
var twist = new ROSLIB.Message({ | ||
linear : { | ||
x : 0.1, | ||
y : 0.2, | ||
z : 0.3 | ||
}, | ||
angular : { | ||
x : -0.1, | ||
y : -0.2, | ||
z : -0.3 | ||
} | ||
}); | ||
|
||
// And finally, publish. | ||
cmdVel.publish(twist); | ||
|
||
// Subscribing to a Topic | ||
// ---------------------- | ||
|
||
// Like when publishing a topic, we first create a Topic object with details of the topic's name | ||
// and message type. Note that we can call publish or subscribe on the same topic object. | ||
var listener = new ROSLIB.Topic({ | ||
ros : ros, | ||
name : '/listener', | ||
messageType : 'std_msgs/String' | ||
}); | ||
|
||
// Then we add a callback to be called every time a message is published on this topic. | ||
listener.subscribe(function(message) { | ||
console.log('Received message on ' + listener.name + ': ' + message.data); | ||
|
||
// If desired, we can unsubscribe from the topic as well. | ||
listener.unsubscribe(); | ||
}); | ||
|
||
// Calling a service | ||
// ----------------- | ||
|
||
// First, we create a Service client with details of the service's name and service type. | ||
var addTwoIntsClient = new ROSLIB.Service({ | ||
ros : ros, | ||
name : '/add_two_ints', | ||
serviceType : 'example_interfaces/AddTwoInts' | ||
}); | ||
|
||
// Then we create a Service Request. The object we pass in to ROSLIB.ServiceRequest matches the | ||
// fields defined in the rospy_tutorials AddTwoInts.srv file. | ||
var request = new ROSLIB.ServiceRequest({ | ||
a : 1, | ||
b : 2 | ||
}); | ||
|
||
// Finally, we call the /add_two_ints service and get back the results in the callback. The result | ||
// is a ROSLIB.ServiceResponse object. | ||
addTwoIntsClient.callService(request, function(result) { | ||
console.log('Result for service call on ' + addTwoIntsClient.name + ': ' + result.sum); | ||
}); | ||
|
||
// Advertising a Service | ||
// --------------------- | ||
|
||
// The Service object does double duty for both calling and advertising services | ||
var setBoolServer = new ROSLIB.Service({ | ||
ros : ros, | ||
name : '/set_bool', | ||
serviceType : 'std_srvs/SetBool' | ||
}); | ||
|
||
// Use the advertise() method to indicate that we want to provide this service | ||
setBoolServer.advertise(function(request, response) { | ||
console.log('Received service request on ' + setBoolServer.name + ': ' + request.data); | ||
response['success'] = true; | ||
response['message'] = 'Set successfully'; | ||
return true; | ||
}); | ||
</script> | ||
</head> | ||
|
||
<body> | ||
<h1>Simple roslib Example</h1> | ||
<p>Run the following commands in the terminal then refresh this page. Check the JavaScript | ||
console for the output.</p> | ||
<ol> | ||
<li><tt>ros2 topic pub /listener std_msgs/msg/String "{ data: 'hello world' }" </tt></li> | ||
<li><tt>ros2 topic echo /cmd_vel</tt></li> | ||
<li><tt>ros2 run demo_nodes_py add_two_ints_server</tt></li> | ||
<li><tt>ros2 launch rosbridge_server rosbridge_websocket_launch.xml</tt></li> | ||
</ol> | ||
<div id="statusIndicator"> | ||
<p id="connecting"> | ||
Connecting to rosbridge... | ||
</p> | ||
<p id="connected" style="color:#00D600; display:none"> | ||
Connected | ||
</p> | ||
<p id="error" style="color:#FF0000; display:none"> | ||
Error in the backend! | ||
</p> | ||
<p id="closed" style="display:none"> | ||
Connection closed. | ||
</p> | ||
</div> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.