1
00:00:01,050 --> 00:00:02,460
As we learned in Section one.

2
00:00:02,460 --> 00:00:08,490
Ross One was around for a long time till the Ross to architecture came around to fix some of its communication

3
00:00:08,490 --> 00:00:09,180
woes.

4
00:00:09,450 --> 00:00:15,030
However, there were so many programs by this time which were developed and dependent on Ross one,

5
00:00:15,030 --> 00:00:21,750
so trying to adapt entire codebases quickly to Ross two could easily be seen as problematic and costly.

6
00:00:21,900 --> 00:00:28,290
So trying to have legacy Ross one systems communicate with Ross too quickly became a key topic as a

7
00:00:28,290 --> 00:00:30,060
means of backwards compatibility.

8
00:00:30,600 --> 00:00:36,900
Thus comes the Ross one bridge, which, as its name suggests, Bridges, Ross one and Ross two nodes

9
00:00:36,900 --> 00:00:39,270
together to be able to communicate with each other.

10
00:00:39,600 --> 00:00:44,970
Now, the last time Ross two and Ross one were supported on the same version was Ross one Noetic and

11
00:00:44,970 --> 00:00:47,960
Ross to Foxy on Ubuntu 20.4.

12
00:00:47,970 --> 00:00:54,750
So this lecture is shot on an Ubuntu 20.4 machine with both Ross noetic and Foxy installed on it.

13
00:00:54,750 --> 00:00:57,190
So by all means no need to follow along.

14
00:00:57,210 --> 00:01:02,370
This is purely for educational purposes in case you ever find yourself needing to bridge the old Ross

15
00:01:02,370 --> 00:01:04,620
one package to Ross two.

16
00:01:05,130 --> 00:01:08,850
Another common way to use the Ross Bridge is with the help of Docker images.

17
00:01:08,850 --> 00:01:12,390
But this course will not be covering the use of Docker with Ross.

18
00:01:12,870 --> 00:01:15,510
With that info out of the way, let's get started.

19
00:01:17,070 --> 00:01:22,110
So the first thing I'm going to do is head over to my bachelor si file, which I'll edit in.

20
00:01:22,110 --> 00:01:22,620
Adam.

21
00:01:26,950 --> 00:01:27,880
At the bottom.

22
00:01:27,880 --> 00:01:31,210
We should have our sources for our Ross two installation.

23
00:01:31,660 --> 00:01:35,920
I'm going to go ahead and comment mines out so that no Ross is sourced.

24
00:01:36,430 --> 00:01:38,830
I'll go ahead and save this and close.

25
00:01:39,620 --> 00:01:46,310
Now, if I open a new terminal, I should be unable to use Ros two or any ROS one commands.

26
00:01:49,720 --> 00:01:56,470
Now we can move on to installing ROS one onto our system so that we can utilize the bridge here locally.

27
00:01:57,680 --> 00:02:02,210
So here I'm on the Ross Noetic installation page since I'm currently running Ubuntu 20.

28
00:02:03,150 --> 00:02:04,770
So go ahead and open up a terminal.

29
00:02:05,940 --> 00:02:07,950
We'll go ahead and set up our sources list.

30
00:02:11,280 --> 00:02:12,330
Put in your password.

31
00:02:14,400 --> 00:02:16,200
Then we'll go ahead and set up our keys.

32
00:02:22,150 --> 00:02:24,190
Then we'll run pseudo apps update.

33
00:02:28,300 --> 00:02:28,900
All right.

34
00:02:29,170 --> 00:02:30,310
Go ahead and clear the screen.

35
00:02:30,310 --> 00:02:36,130
And for the purposes of this video, I'm not going to install the full desktop version of Rosenau wedding,

36
00:02:36,160 --> 00:02:41,460
partly because it will also coincide with my current installations of RVs and Gazebo.

37
00:02:41,470 --> 00:02:46,120
So instead, what I'm going to do is just simply install the base version of Ross Noetic.

38
00:02:46,120 --> 00:02:49,930
So this will just give me the basic packages and communication libraries.

39
00:02:49,960 --> 00:02:52,750
No user interface tools or anything like that.

40
00:02:52,750 --> 00:02:54,760
So I'll just go ahead and install this.

41
00:02:56,110 --> 00:02:56,740
I'll go ahead and hit.

42
00:02:56,740 --> 00:02:57,460
Yes.

43
00:02:59,790 --> 00:03:01,310
And so this will take a while to install.

44
00:03:01,320 --> 00:03:04,560
So go ahead and pause the video now and we'll come back once it's finished.

45
00:03:05,660 --> 00:03:09,860
All right, so the installation finished and we can just see that all it did was set up all the packages

46
00:03:10,790 --> 00:03:12,930
That took about maybe 4 minutes for me.

47
00:03:12,950 --> 00:03:16,010
Now we'll go ahead and move on with the environment set up of this.

48
00:03:16,010 --> 00:03:20,010
So in order for us to utilize our Ross one, we can't use anything yet.

49
00:03:20,010 --> 00:03:23,540
So I use Ross core, which is a Ross one command to start the Ross master.

50
00:03:23,720 --> 00:03:27,800
Even though we have Ross installed, we can't use anything because we haven't set up our environment

51
00:03:27,800 --> 00:03:28,340
file.

52
00:03:28,340 --> 00:03:34,850
So if I go ahead and source my terminal environment, we should now see that I can run things like Ross

53
00:03:34,850 --> 00:03:35,270
Corp.

54
00:03:36,320 --> 00:03:36,770
Great.

55
00:03:36,770 --> 00:03:43,100
So now this device has Ross one and Ross two installed on it, but by default neither will be sourced

56
00:03:43,100 --> 00:03:44,180
on terminal startup.

57
00:03:46,530 --> 00:03:50,880
So the next thing we're going to do is we're going to make sure that we have all these other dependencies

58
00:03:50,880 --> 00:03:52,320
for building packages.

59
00:03:52,680 --> 00:03:55,200
So I'll go ahead and copy and paste this in.

60
00:03:56,430 --> 00:03:57,870
Go ahead and hit Y and enter.

61
00:04:01,080 --> 00:04:06,270
And in most cases you'll already have Ross step initialized, but you can double check by pasting in

62
00:04:06,270 --> 00:04:10,740
this so we can see I've already have it installed and I already have it initialized.

63
00:04:12,740 --> 00:04:15,350
And we can double check that it's initialized by running these commands.

64
00:04:16,220 --> 00:04:20,600
So here we can see error sources file already exists, so I'm not going to bother removing that one.

65
00:04:20,600 --> 00:04:21,200
Creating a new one.

66
00:04:21,200 --> 00:04:22,400
I'll just leave it as is.

67
00:04:23,930 --> 00:04:28,820
So now we have Ros one and Ros two installed and we have our actual dependencies if we have to build

68
00:04:28,820 --> 00:04:29,850
any packages.

69
00:04:29,870 --> 00:04:33,890
So for now, I'm going to start off clean with a new terminal environment that's not sourced on any

70
00:04:33,890 --> 00:04:34,610
raw system.

71
00:04:34,610 --> 00:04:43,130
So now if I run Ros to help see Ros two command not found or ROS core and we see Rostker not found.

72
00:04:43,370 --> 00:04:46,880
So this terminal instance can't see either one of our ROS installations.

73
00:04:46,880 --> 00:04:48,830
So now we'll go ahead to the ROS.

74
00:04:48,830 --> 00:04:50,570
One bridge documentation.

75
00:04:52,250 --> 00:04:53,930
All right, so here are the prerequisites.

76
00:04:53,930 --> 00:04:57,680
We should have majority of these prerequisites from the basic installation.

77
00:04:57,680 --> 00:05:02,180
But first off, I'll go ahead and source the Ross one installation as these were catered towards the

78
00:05:02,180 --> 00:05:03,650
Ross one installation.

79
00:05:03,650 --> 00:05:10,370
So I'll do source slash opt slash Ross noetic.

80
00:05:13,620 --> 00:05:16,530
And so now I should have access to my tools like raw Core.

81
00:05:17,070 --> 00:05:18,360
And we can see I do.

82
00:05:19,080 --> 00:05:23,340
And now I'll just make sure that I have all these other packages installed, which I can do using sudo

83
00:05:23,340 --> 00:05:25,320
apt install.

84
00:05:26,550 --> 00:05:31,620
And then we do Ross the name of the distribution, which in this case for me is noetic.

85
00:05:32,130 --> 00:05:33,870
And then the name of the package.

86
00:05:33,870 --> 00:05:40,350
So things like CAT scan, raw CP ros launch ros message should all be already installed because that

87
00:05:40,350 --> 00:05:42,120
comes with the basic installation.

88
00:05:42,300 --> 00:05:47,550
The main things we're going to be missing though are going to be those that are utilized for the examples,

89
00:05:47,550 --> 00:05:50,850
including the tutorials and the RCT image view.

90
00:05:51,270 --> 00:05:53,700
So I can go ahead and install those specifically.

91
00:05:56,810 --> 00:06:02,030
And note instead of using underscores when using the pseudo app command, you should use just a simple

92
00:06:02,030 --> 00:06:05,480
dash when you see the package name separated by underscores.

93
00:06:07,700 --> 00:06:11,570
So as you can see here, instead of doing Ross PI underscore tutorials.

94
00:06:11,600 --> 00:06:16,760
I am doing Ross P dash tutorials, but that correlates to the correct package.

95
00:06:19,450 --> 00:06:22,480
And then last but not least, I'll install the RCT image view.

96
00:06:30,110 --> 00:06:30,530
All right.

97
00:06:30,530 --> 00:06:32,350
And we should be good to go on that front.

98
00:06:32,360 --> 00:06:36,320
You can double check with all the other packages that you have then properly installed.

99
00:06:37,580 --> 00:06:38,270
Moving on.

100
00:06:38,270 --> 00:06:40,520
We can go on to building the bridge from source.

101
00:06:40,610 --> 00:06:44,060
So earlier we installed ROS two from source.

102
00:06:44,060 --> 00:06:49,190
And so in order to utilize it, we're actually have to make sure that we skip the ROS one bridge command

103
00:06:49,220 --> 00:06:50,540
on build initially.

104
00:06:50,540 --> 00:06:53,300
So I'll go ahead and do that now in a new terminal.

105
00:07:12,680 --> 00:07:17,930
So here you are seeing we're rebuilding the Ross two installation, but this should go by a lot faster

106
00:07:17,930 --> 00:07:19,640
since we've already built it already.

107
00:07:19,640 --> 00:07:22,940
This time we're just simply skipping the Ross one bridge.

108
00:07:28,830 --> 00:07:30,500
That took 20 minutes or so.

109
00:07:30,510 --> 00:07:34,880
We did have some standard error outputs from GUI and M.W..

110
00:07:35,070 --> 00:07:40,260
Next, I'm not going to be using next and I'm don't plan on using the RCT, so I don't think this will

111
00:07:40,260 --> 00:07:41,580
affect us for right now.

112
00:07:41,880 --> 00:07:47,130
So I'm just going to continue on with the read me documentation for utilizing the raster bridge.

113
00:07:48,420 --> 00:07:51,290
So now we need to source our Ross one environment.

114
00:07:51,300 --> 00:07:54,000
So what we will do is do the source.

115
00:07:57,900 --> 00:08:05,410
So we will do source slash OP slash Ross Noetic set up bash.

116
00:08:11,000 --> 00:08:16,310
Now we will source the Ross two installation, which is located here in my Workspaces directory, so

117
00:08:16,310 --> 00:08:19,890
I'll do source install setup bash.

118
00:08:22,900 --> 00:08:26,110
And so it'll mention that the distribution was noetic before.

119
00:08:26,320 --> 00:08:28,660
That's fine, because that's what indeed we were doing.

120
00:08:28,660 --> 00:08:33,220
We had our ROS one source and then now we just source our Ros Fox, the installation.

121
00:08:34,040 --> 00:08:37,640
Now we can build the Ross one bridge using this command.

122
00:08:39,960 --> 00:08:43,530
And so this will only rebuild the Ross one bridge package.

123
00:08:43,530 --> 00:08:46,530
So it won't rebuild the whole Ross to installation.

124
00:08:46,530 --> 00:08:47,790
So we'll go ahead and run this.

125
00:08:50,790 --> 00:08:53,130
All right, So our Rosslyn Bridge finished building.

126
00:08:53,130 --> 00:08:54,900
That took about 8 minutes for me.

127
00:08:55,710 --> 00:08:58,710
So we'll go through and try to run some examples.

128
00:08:59,860 --> 00:09:05,260
So I'll go ahead and open up new terminals that are independent of this one, since this one has both

129
00:09:05,260 --> 00:09:06,160
of them sourced.

130
00:09:07,090 --> 00:09:08,080
So I'll put this one away.

131
00:09:09,440 --> 00:09:14,870
So the first one I'll do is source this terminal to have only Ross one to imitate my previous robot

132
00:09:14,870 --> 00:09:23,450
or system, which only ran Ross one code such as source slash opt Ross Noetic set up dot bash,

133
00:09:27,470 --> 00:09:29,690
and then we'll just run a Ross core instance.

134
00:09:31,740 --> 00:09:37,560
Then for this example, we'll need another shell which has Ross one and then Ross to source, which

135
00:09:37,560 --> 00:09:40,390
pretty much makes up the previous terminal we had and did our insulation.

136
00:09:40,470 --> 00:09:41,910
So I'm going to bring that one back.

137
00:09:44,550 --> 00:09:50,430
And what we're going to do is export the Ross Master Uri to match that of the local host or in this

138
00:09:50,430 --> 00:09:52,770
case, what this URI should be.

139
00:09:53,430 --> 00:09:56,220
So we can go ahead and export that.

140
00:09:57,260 --> 00:09:59,960
And now we can try run the Ross to bridge.

141
00:10:05,600 --> 00:10:05,930
All right.

142
00:10:05,930 --> 00:10:11,030
So here we can see that it created a bridge for the Ross out and Rxl interface tags.

143
00:10:11,540 --> 00:10:19,670
So here, if I go and open a new terminal tab Source Opt Ross Noetic Setup dot Bash Ross Topic list.

144
00:10:20,510 --> 00:10:24,830
All right, so we see that it converted our Ross out from Ross one to Ross two.

145
00:10:25,070 --> 00:10:28,010
All right, so now we can go ahead and actually start some nodes.

146
00:10:28,040 --> 00:10:33,320
For this example, we'll need another terminal which has our Ross one sourced, which I just did here.

147
00:10:33,560 --> 00:10:39,410
So I'll actually go ahead and clear the screen and we'll go ahead and run our talker node from the tutorials.

148
00:10:42,080 --> 00:10:44,480
So here we see these Hello Worlds publishing out.

149
00:10:44,660 --> 00:10:48,050
And now I can go ahead and open up another Ross to instance.

150
00:10:48,050 --> 00:10:49,640
So this one has our roster bridge running.

151
00:10:49,640 --> 00:10:57,440
So I'm going to open up another terminal tab, and I'm going to source our install setup dot, dot bash

152
00:10:57,530 --> 00:10:58,040
file.

153
00:11:00,530 --> 00:11:02,750
And then we can do our listener node.

154
00:11:07,650 --> 00:11:13,770
And here we can see we are receiving the Hello world messages here on this Ross two terminal from.

155
00:11:14,460 --> 00:11:21,010
This Ross One instance running our Talker node from Ross Noetic to Ross Foxy.

156
00:11:21,090 --> 00:11:21,960
So there you go.

157
00:11:21,960 --> 00:11:28,110
That's how you can utilize the Ross Bridge to bridge over perhaps old nodes that you had made in Ross

158
00:11:28,110 --> 00:11:31,440
one, and then you can implement them into Ross two nodes.

159
00:11:31,750 --> 00:11:33,120
So go ahead and stop these.

160
00:11:39,490 --> 00:11:40,780
That's it for this part of the video.

161
00:11:40,780 --> 00:11:46,960
I will do a second part of the video where I will do Cross-device communication using the Ross Bridge.

162
00:11:49,640 --> 00:11:50,690
All right, So here we are.

163
00:11:50,690 --> 00:11:56,450
I have two different computers going right now that are connected to each other via an Ethernet switch.

164
00:11:56,570 --> 00:12:03,770
So the first one is our original computer, which is running our Ubuntu 20, where we have our ROS two

165
00:12:03,770 --> 00:12:06,440
Foxy installed as well as ROS one noetic.

166
00:12:07,160 --> 00:12:08,150
On the second computer.

167
00:12:08,150 --> 00:12:13,010
We have a laptop of mine that's running Ubuntu 18 and this one is running RAR melodic.

168
00:12:13,250 --> 00:12:17,750
So starting off with my laptop, I can go ahead and open up a terminal here just to show this to you.

169
00:12:17,780 --> 00:12:26,680
If I go over and do Ross version dash D you can see I'm running melodic and if I were to do Ros to help,

170
00:12:26,690 --> 00:12:29,230
you can see that I do not have Ros to install.

171
00:12:30,140 --> 00:12:32,150
All right, so that's the first thing to note.

172
00:12:32,240 --> 00:12:36,290
So the second thing to note when working with two different systems is that each one will have its own

173
00:12:36,290 --> 00:12:40,910
independent IP address either by you setting it or by a router setting it.

174
00:12:40,940 --> 00:12:44,660
So if I can check that by running the if config command.

175
00:12:45,110 --> 00:12:53,790
And so here we can see my IP address for this computer is 192.168.50.177.

176
00:12:53,810 --> 00:12:59,810
So all my other local computers that are on this network can access or communicate with this computer

177
00:12:59,810 --> 00:13:02,570
by locating this IP address.

178
00:13:02,690 --> 00:13:06,440
So we can do the same thing over here on my Ubuntu 20 machine.

179
00:13:06,440 --> 00:13:17,370
So if I go over here and I type in F config, you can see this machine has an IP address of 192.168.50.3.

180
00:13:17,390 --> 00:13:21,950
So be wary of what your machine's IP addresses are because they will vary from mine.

181
00:13:21,950 --> 00:13:24,830
If you are trying to reproduce what I'm about to do here.

182
00:13:25,250 --> 00:13:25,640
All right.

183
00:13:25,640 --> 00:13:31,310
So heading back to my machine running Ubuntu 18, I can go ahead and clear the screen so this will be

184
00:13:31,310 --> 00:13:36,230
running our ROS1 instance and we'll be simulating essentially that this is one of our robots running

185
00:13:36,230 --> 00:13:37,340
a ROS1 node.

186
00:13:37,340 --> 00:13:41,990
And then we want our Ubuntu 20 machine which has RAS two and RAS one installed to be able to communicate

187
00:13:41,990 --> 00:13:42,860
with this one.

188
00:13:43,130 --> 00:13:45,620
And so we don't want to have to install Rasta in this machine.

189
00:13:45,620 --> 00:13:47,750
So we're going to go through how we can go about doing that.

190
00:13:47,900 --> 00:13:53,360
If we have an older robot that we developed code for, we can still utilize it with newer machines that

191
00:13:53,360 --> 00:13:54,470
run ROS two.

192
00:13:54,950 --> 00:14:00,530
So the first thing to note, whenever we're dealing with ROS networking, we have to set Ros Master

193
00:14:00,530 --> 00:14:03,520
Uri and the ROS IP of the device.

194
00:14:03,530 --> 00:14:05,150
So I've gone ahead and listed these down.

195
00:14:05,150 --> 00:14:09,080
Right, So we just took note of the IP address and I'll put it back up on here.

196
00:14:09,080 --> 00:14:10,250
I have config.

197
00:14:10,280 --> 00:14:10,730
All right.

198
00:14:10,730 --> 00:14:14,300
So this one is 192.168 50.177.

199
00:14:14,330 --> 00:14:20,300
So in ROS one there was a central ROS master server which all the ROS nodes would have to communicate

200
00:14:20,300 --> 00:14:20,660
with.

201
00:14:20,660 --> 00:14:23,150
I will have that set running on this computer.

202
00:14:23,150 --> 00:14:26,660
So what I will do is set my Ros master Uri.

203
00:14:28,500 --> 00:14:36,600
Variable by using the export command and I will set it to this IP address or I'll set it to HTTP colon

204
00:14:36,600 --> 00:14:43,980
slash, slash this IP address and then port 11 311, which is the default port Ross one runs off of.

205
00:14:44,320 --> 00:14:45,690
So I'll go ahead and run that.

206
00:14:46,350 --> 00:14:52,680
Then I'm going to set the Ross IP of this particular device, which is just the IP address part.

207
00:14:52,680 --> 00:14:56,610
So you don't need the HTTP and you don't need the port number at the end of it.

208
00:14:57,270 --> 00:15:02,550
And so with that, now this knows that the Ross master should be running on this machine on Port 11

209
00:15:02,550 --> 00:15:07,920
311 because this is the same the machine with this particular IP address.

210
00:15:09,190 --> 00:15:14,410
So now we can go ahead and start our ROS master using the four Ros one using Ros core.

211
00:15:15,750 --> 00:15:18,180
Okay, so now we have our core instance running.

212
00:15:18,180 --> 00:15:20,040
So our Ros Melodic is running.

213
00:15:20,190 --> 00:15:22,740
So now if we go over to our 1 to 20 Machine.

214
00:15:23,660 --> 00:15:28,270
We can run through the first example from the Rosslyn Bridge documentation in a very similar way.

215
00:15:28,280 --> 00:15:35,570
So right now our shell A which is ROS1 only is that ubuntu 18 computer that I just ran rostker on.

216
00:15:35,570 --> 00:15:39,050
So that only has ra melodic on it and it's now running core.

217
00:15:39,230 --> 00:15:43,760
So now this will be our shell b so we first source ros one.

218
00:15:43,760 --> 00:15:48,590
In this case I don't have melodic but I have noetic, but this will still work even though it's a different

219
00:15:48,590 --> 00:15:49,220
distribution.

220
00:15:49,220 --> 00:15:55,640
So if I go ahead and run this source command right here I am sourcing my noetic setup that bash where

221
00:15:55,640 --> 00:15:56,630
I installed it.

222
00:15:57,380 --> 00:16:00,560
So now my RA noetic is source for this terminal.

223
00:16:00,560 --> 00:16:06,440
Then we'll go ahead and source our ROS two instance, which I also have here because I built ROS two

224
00:16:06,470 --> 00:16:07,040
from source.

225
00:16:07,040 --> 00:16:09,170
So I have it here in my workspaces folder.

226
00:16:09,170 --> 00:16:12,170
Ros do foxy and then install setup dot bash.

227
00:16:12,650 --> 00:16:17,390
And so we get a little warning here saying set to noetic before please make sure, but that's totally

228
00:16:17,390 --> 00:16:17,870
fine.

229
00:16:17,870 --> 00:16:25,220
So for now I'm just going to clear the screen and now we need to export the ROS master Uri and our ROS

230
00:16:25,220 --> 00:16:27,680
IP address to match what it's supposed to be.

231
00:16:27,680 --> 00:16:33,380
So first off, we will set the ROS master Uri to the same thing we just set it to on the other computer.

232
00:16:33,380 --> 00:16:33,590
Right.

233
00:16:33,590 --> 00:16:39,020
So the ROS master is running on the Ubuntu 18 computer which has this IP address.

234
00:16:39,020 --> 00:16:41,960
So this will be our master URI we want to communicate with.

235
00:16:42,080 --> 00:16:47,960
And then as we mentioned, if I type in if config, right, this is the IP address for this specific

236
00:16:47,960 --> 00:16:48,650
computer.

237
00:16:48,650 --> 00:16:54,560
So I'm going to export the ROS IP variable here in my terminal so that it knows that this is the ROS

238
00:16:54,560 --> 00:16:56,090
IP of this machine.

239
00:16:56,960 --> 00:16:57,230
Cool.

240
00:16:57,260 --> 00:17:01,940
That I can go ahead and clear the screen and now we can run our Ros Bridge.

241
00:17:02,330 --> 00:17:08,930
So if I go ahead and run this Ros to run Ros one bridge dynamic bridge, I can go ahead and run it.

242
00:17:09,350 --> 00:17:14,330
And now you can see it created the bridge and it's already beginning to convert those messages.

243
00:17:14,540 --> 00:17:20,720
Now we can actually open up another terminal to follow through with this example and we will open this

244
00:17:20,720 --> 00:17:24,950
up on our Ubuntu 18 machine and this will be our talker node that comes with just the normal ros PE

245
00:17:24,980 --> 00:17:26,660
tutorials for ROS one.

246
00:17:26,870 --> 00:17:29,000
So I'll go ahead and do that now.

247
00:17:29,000 --> 00:17:30,350
So control alt dt.

248
00:17:30,620 --> 00:17:35,150
So now I have a new terminal here and just to make sure again, just to prove to you that this is only

249
00:17:35,150 --> 00:17:40,010
source with this Ros melodic if I do ROS version, this is melodic.

250
00:17:40,010 --> 00:17:41,660
Ros to help.

251
00:17:41,660 --> 00:17:46,160
And you can see I don't have Ros two installed on this machine so I'm not trying to pull anything here.

252
00:17:46,160 --> 00:17:48,470
This machine only has Ros one on it.

253
00:17:49,670 --> 00:17:56,720
We will need to make sure though that we have our master Uri and IP properly set in every terminal.

254
00:17:56,720 --> 00:18:01,310
So normally you would set this in your Batchelor C file so that it runs every time you open a new terminal.

255
00:18:01,310 --> 00:18:04,100
But for right now I'm just going to set this manually.

256
00:18:04,100 --> 00:18:06,980
Each time we open a new terminal, we'll only be opening these terminals.

257
00:18:06,980 --> 00:18:07,880
This should be fine.

258
00:18:08,210 --> 00:18:11,330
And now we can go ahead and run our talker node.

259
00:18:13,450 --> 00:18:14,950
So here we can see that default.

260
00:18:14,950 --> 00:18:15,190
Hello.

261
00:18:15,190 --> 00:18:16,900
World messages are pointing to the screen.

262
00:18:17,200 --> 00:18:20,140
Now if I go back to my Ubuntu 20 machine.

263
00:18:21,820 --> 00:18:26,940
I can open up another shell that only needs to have Ross two sauce on it, so I'll go ahead and do control

264
00:18:27,010 --> 00:18:27,460
TW.

265
00:18:27,880 --> 00:18:33,280
And here's my second instance, and so I will source my Ross Foxy install.

266
00:18:39,360 --> 00:18:40,740
And we don't have to worry about the warning.

267
00:18:40,740 --> 00:18:43,770
And then if now I go ahead and run a listener.

268
00:18:43,770 --> 00:18:44,280
Right.

269
00:18:44,280 --> 00:18:46,800
So there are no talker nodes running on this machine.

270
00:18:46,800 --> 00:18:49,920
That only talker node is running on the Ubuntu 18 machine.

271
00:18:49,920 --> 00:18:55,200
But because we have our bridge running here, we should be able to listen in on those messages over

272
00:18:55,200 --> 00:19:00,960
the network because we set our ROS master Uri and our ROS IP address accordingly actually.

273
00:19:02,370 --> 00:19:03,780
That's actually what I need to do here.

274
00:19:03,780 --> 00:19:10,200
So before I go ahead and run that, I will need to set our Ros master Uri and our Ros IP in this terminal

275
00:19:10,200 --> 00:19:11,490
since this is a new terminal.

276
00:19:13,030 --> 00:19:13,900
Right with that.

277
00:19:13,900 --> 00:19:15,850
Now I can go ahead and run the listener.

278
00:19:19,050 --> 00:19:24,790
And here you can see the Ross Bridge detects that message coming from the Ross two and the Ross one.

279
00:19:24,810 --> 00:19:25,710
It bridges it.

280
00:19:25,710 --> 00:19:30,750
And here we can see I heard Hello World, which is matching with what is being sent from the Ubuntu

281
00:19:30,750 --> 00:19:31,890
18 computer.

282
00:19:32,370 --> 00:19:33,030
Cool.

283
00:19:33,180 --> 00:19:37,710
And it's worth noting that this works both away, so go ahead and stop this listener note and I'll stop

284
00:19:37,710 --> 00:19:39,030
the talker node on the other machine.

285
00:19:39,040 --> 00:19:42,360
I'll go ahead and clear the screen on both of these.

286
00:19:42,480 --> 00:19:45,150
But this also works from Ross two to Ross one.

287
00:19:45,150 --> 00:19:50,550
So if you create any new nodes on your Ross two instance that you want your Ross one computer to subscribe

288
00:19:50,550 --> 00:19:51,120
to.

289
00:19:51,150 --> 00:19:52,710
It works the same way.

290
00:19:52,740 --> 00:19:56,610
Instead of running the listener node, this time I can run the talker node.

291
00:19:58,460 --> 00:20:02,210
So if we say talker, we can see we're publishing Hello World.

292
00:20:02,210 --> 00:20:06,090
And then the counter variable, that's what this version of Talker looks like for Ross, too.

293
00:20:06,110 --> 00:20:14,090
And now if I run the listener node on our Ubuntu 18 machine that is running only Ross one, the Ross

294
00:20:14,090 --> 00:20:16,970
Bridge will show up that it's bridging the communications.

295
00:20:16,970 --> 00:20:22,610
And we can see here that my Ross two publishing Hello World is being received on my Ross one machine

296
00:20:22,610 --> 00:20:25,610
and it's receiving the Hello world messages just fine on the listener node.

297
00:20:26,390 --> 00:20:26,780
Great.

298
00:20:26,780 --> 00:20:28,160
I'll go ahead and stop those.

299
00:20:28,970 --> 00:20:29,330
All right.

300
00:20:29,330 --> 00:20:34,730
With that you can see how you can implement the Ross Bridge to connect Legacy Ross One Systems to newer

301
00:20:34,730 --> 00:20:36,470
Ross two code bases.
